[Feature] 第三方 Yggdrasil OAuth 登录支持
Close #4941 (关联投票 #4948)
之前的 PR 由于推送时操作不当炸了 现在重开一个,但是可能有点问题.....
目前已知的 Bug
完成登录后会错误的进行刷新登录 但是我不知道为什么,也没法修,只能麻烦大家看看了....
~登录完成后可能因为刷新登录失败反复要求进行原始登录~ 此问题已做缓解性修复,应该不会那么频繁了
~提交内包含旧版本代码~ 相关部分代码已同步主仓 ~(手动 Merge)~
~会打印登录信息的代码等我回来再删~ 已删除
以下是计划制作但最终移除的部分
在服务器返回错误时显示 X-Yggdralt-Req-ID
由于 NetRequestOnce 历史遗留的问题,无法通过简单的逻辑微调实现,逻辑部分已在提交前回滚 ~(用户和皮肤站管理员体验-1)~
注意事项
申请权限需要(均为必选项)
offline_access openid Yggdrasil.PlayerProfiles.Select Yggdrasil.MinecraftToken.Create
需要在申请邮件里备注用于正式环境
成品效果
https://pan.huang1111.cn/s/A6K18sB
应该是没有啥是我要做的了(((
申请权限需要(均为必选项)
User.Read offline_access openid Yggdrasil.PlayerProfiles.Select Yggdrasil.MinecraftToken.Create
如果只是获取 Minecraft Token,不需要 User.Read。申请权限时应遵循最小化原则。
角色信息已经包含在 ID Token 中,而且 User.Read 也拿不到角色信息。
如果只是获取 Minecraft Token,不需要
User.Read。申请权限时应遵循最小化原则。角色信息已经包含在 ID Token 中,而且
User.Read也拿不到角色信息。
源代码和正文已移除 User.Read 权限要求 (感谢指正)
- https://github.com/elyby/accounts/issues/37
ely.by 也有了类似计划,应该可以合在一起做
- 此 PR 并入 https://github.com/elyby/accounts/issues/37 一起做,反正短时间没计划合并
https://github.com/yushijinhun/authlib-injector/issues/268
Authlib-Injector 那边要搞新协议了 @LTCatt #5168 做的时候能不能把 Yggdrasil API 根地址留下来?
能不能求求他别搞了,我真没空跟进……
能不能求求他别搞了,我真没空跟进……
Response by tnqzh123
启动器作者是否实现、如何实现 Yggdrasil Connect 是其个人自由。
等 23 号学校放假了看看能不能写掉(bushi
我因为 Steven Qiu 的发言,错误地认为他是 Authlib-Injector 的开发者,所以闹了个误会。之后 yushijinhun 也来找我进行了充分沟通,我个人删除了此前带错误 ID 的评论。 特在此声明,此前评论与 yushijinhun 完全无关,也并非 Authlib-Injector 的官方意见,纯属我的个人失误,整错人了。我对莫名背锅的 yushijinhun 表示深深的歉意,也抱歉对 PCL 社区带来了一时的混乱,也望大家多多包容,就当春晚提前批小品看了……