超级管理员账户 Token 鉴权与其他账户表现不一致 #221
Replies: 0 comments 2 replies
-
我感觉你思路错了。 Java 不走系统证书 Fiddler 没法解包 HTTPS 不是问题请求,你大可以直接用 HTTP,反正不是生产环境。 以及,作为开发者,你也应该懂得这种问题的提问原则:
如果你仍然需要帮助,请提供 还有,你正文中提供的 Yggdrasil API 插件的源码链接不是 Blessing Skin 官方插件仓库的。官方的插件仓库是 blessing-skin-community/blessing-skin-plugins。 |
Beta Was this translation helpful? Give feedback.
-
我再盲猜一个可能的原因:你的超级管理员账户上有多个角色,而管理员和普通用户账户上只有一个角色,而且你的 Mod 没有处理好多角色场景下的登录。
当用户使用邮箱登录时,如用户拥有多个角色,Blessing Skin 会为本次会话签发一个未绑定角色的 Access Token,同时在响应中设置 第 62 行的 客户端在拿到这个无效的 Access Token 以及角色信息数据后后,应询问用户要登录到哪个角色,然后发起刷新请求,并在请求中指定要选择的角色。此时 Blessing Skin 才会签发一个有效且绑定到具体角色的 Access Token,使用这个 Access Token 才能正常进入服务器。 如果使用角色名登录,则 Access Token 默认绑定至角色名对应的角色上,不会出现这个问题。 |
Beta Was this translation helpful? Give feedback.
-
您好!我是 AccountsX 模组的开发者,正在开发游戏内账户切换的功能。
目前,我已经在 https://github.com/burningtnt/AccountsX 1.1.2 版本完整的实现了游戏内切换微软账户、离线账户、第三方皮肤站和统一通行证的功能。
但在测试中,我发现同样的操作,在同一皮肤站上的不同账户会出现不一致的表现:
POST /authserver/authenticate
申领令牌,进入服务器,提示无效会话在观察服务器日志和客户端响应后,我确信是服务端走到了这个判断:https://github.com/sidyhe/blessing-skin-yggdrasil/blob/7eb2ceb124b9b7e2d14c90d4473543c7ce920f9c/src/Controllers/SessionController.php#L81
更诡异的是,我同时分别使用 authlib-injector 登录两个账户并启动游戏,发现一切运行正常。
我曾考虑过用 Fiddler 抓包,但 Java 不走系统证书,我没法解包 HTTPS 请求。
请问我应该如何排查该问题?
Beta Was this translation helpful? Give feedback.
All reactions