找到2210个回复 (用户: 老虎会游泳)
@cherrydra,小老虎是不是也会以最快的速度不断重连?
@TabKey9,之前的问题是,如果用户名密码输入框被浏览器隐藏,就会以最快的速度不断尝试登录。
现在已经加了5秒延时。
@cherrydra,弄好了
@童真再见,12:02:45是问题停止的时刻,12:02:46你重新登录了。
3月 30 12:02:33 hu60-kunpeng run.sh[268701]: time="2023-03-30T12:02:33+08:00" level=warning msg="authentication failed: sid not found" 3月 30 12:02:33 hu60-kunpeng run.sh[268701]: time="2023-03-30T12:02:33+08:00" level=warning msg="authentication failed: sid not found" 3月 30 12:02:33 hu60-kunpeng run.sh[268701]: time="2023-03-30T12:02:33+08:00" level=warning msg="authentication failed: sid not found" 3月 30 12:02:39 hu60-kunpeng run.sh[268701]: time="2023-03-30T12:02:39+08:00" level=warning msg="authentication failed: sid not found" 3月 30 12:02:45 hu60-kunpeng run.sh[268701]: time="2023-03-30T12:02:45+08:00" level=warning msg="authentication failed: sid not found" 3月 30 12:02:46 hu60-kunpeng run.sh[268701]: time="2023-03-30T12:02:46+08:00" level=info msg="user 童真再见 is connected, there are currently 1 connections" 3月 30 12:02:46 hu60-kunpeng run.sh[268701]: time="2023-03-30T12:02:46+08:00" level=info msg="user 童真再见 is connected, there are currently 2 connections"
@cherrydra,我决定把
HTTP/1.1 503 Service Unavailable
改成HTTP/1.1 429 Too Many Requests
,后者更符合标准。
@cherrydra,目前有一个头信息:
header('HTTP/1.1 503 Service Unavailable'); header('Retry-After: '.$needWaitSeconds);
@cherrydra,我可以添加一个功能来返回JSON
@cherrydra,
hu60bot怎么拿到客户端真实IP
:目前是以下头信息,但我建议不要假定管理员开了代理,首先使用remote addr。除非管理员指定了一个头信息参数,再使用它。proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr;
@cherrydra,是
hu60bot
访问了/user.index.json
,不是用户访问了/user.index.json
,nginx不可能神奇的感知到背后的用户IP是什么。
@cherrydra,所以我们需要
req.Header.Set(一个自定义头信息的变量, 用户的真实IP)
@cherrydra,如果
http.NewRequestWithContext(ctx, http.MethodGet, c.fullURL("/user.index.json")
不传递IP,nginx显然不知道用户的IP是什么。
@cherrydra,这里达到了限速,所以没有人可以认证通过。顺便一提
udSySELORQDee6_Jxv-YPMEAsAAA
已经被我设为无效了,所以公开也没关系。// 获取sid(跨域时禁用cookie) sid := getRequestParam(r, "sid", noCookie) if sid == "" || sid == "udSySELORQDee6_Jxv-YPMEAsAAA" { m.responseUnauthenticated(ws) logrus.Warn("authentication failed: sid not found") return } // 这里达到了限速 res, err := m.hu60Client.GetProfile(context.Background(), sid) if err != nil { m.responseUnauthenticated(ws) logrus.Warn("authentication failed: ", err.Error()) return }
@cherrydra,因为现在的超速都算在
127.0.0.1
头上了,所以大家都连不上。把真实IP填充在头信息里,我就可以把限速算在具体用户头上了。