文档:浏览器注入ck未登录根因=domain需带前导点(.huya.com),host-only仅主域生效

This commit is contained in:
yml2213
2026-09-01 23:02:40 +08:00
parent 45da352668
commit 3ae1c3de1e
+39 -1
View File
@@ -149,4 +149,42 @@ isRole),RPC 往返全部正常;604 是账号真实积分状态(历史兑
1. `guid/_qimei_uuid42/__yamid_new/game_did` 的**真实性/关联性**服务端是否校验未知; 1. `guid/_qimei_uuid42/__yamid_new/game_did` 的**真实性/关联性**服务端是否校验未知;
必须用生成值跑通线上活动 WSS 全链路才能定论,不能只过长度测试。 必须用生成值跑通线上活动 WSS 全链路才能定论,不能只过长度测试。
2. 统计字段随机值不影响接口语义,但**顺序**建议与 9.1 cookie 保持一致以便对照。 2. 统计字段随机值不影响接口语义,但**顺序**建议与 9.1 cookie 保持一致以便对照。
3. 补齐后仍需**新鲜的 udb 登录态**(905 = 过期),登录链路见 `app_login.py`。 3. 补齐后仍需**新鲜的 udb 登录态**(905 = 过期),登录链路见 `app_login.py`。
## 九、浏览器注入 ck 未登录的根因(2026-09-01 晚实测确认)
现象:把 App 扫码登录产出的 41 字段网页 ck 注入浏览器,打开 www.huya.com 顶部仍显示
"登录"按钮(未登录)。
排查过程(CDP 有头 Chrome 实测):
1. ck 本身有效:curl 带该 ck 请求
`l.huya.com/udb_web/udbport2.php?m=HuyaLogin&do=checkLogin` 返回
`{"isLogined":true,"userName":"hy_300539756","uid":"1199667330433",...}`
8.31 真实扫码登录抓包的 checkLogin 成功值与 verify data:null 均一致。
注意:`user.huya.com/liveHttpUI/checkUserTimeIsLogin` 的 `iIsLogin:0` 不判定
登录态 —— 真实网页 ck 抓包同样为 0,可排除。
2. `web/cookie/verify` 的 `data:null` 也是正常成功形态,非未登录信号。
3. document.cookie 检查发现:注入后页面里只有设备字段(guid 等)、没有
udb_uid/udb_cred/udb_biztoken/yyuid —— 登录凭据没有被 www.huya.com 子域携带。
**根因:Network.setCookie 的 domain 参数不能写 `huya.com`,必须写 `.huya.com`
(带前导点)。**
- `domain="huya.com"`(无前导点)→ Chrome 存为 **host-only cookie**,只有精确访问
`huya.com` 时才发送;`www.huya.com` / `l.huya.com` / `udblgn.huya.com` /
`user.huya.com` 等**所有子域都不会携带** → 页面意义上的登录判定失败。
- `domain=".huya.com"`(带前导点)→ 存为 **domain cookie**huya.com 及其全部子域
都携带。实测注入后 `document.cookie` 含全部字段,顶部导航"登录"按钮消失、
出现登录用户专属项(如"关注")。
正确注入姿势(CDP):
```json
{"method":"Network.setCookie","params":{
"name":"udb_uid","value":"1199667330433","domain":".huya.com",
"path":"/","secure":false,"httpOnly":false}}
```
手工用浏览器插件/DevTools 注入时同样注意:Domain 填 `.huya.com`(用户输入时 Chrome
会规范化为前导点形式;若插件按 host-only 保存则无效)。HttpOnly 无需设置 ——
uzb_* 登录凭据在真实网页中可由脚本读取,非 HttpOnly。