PCL2 icon indicating copy to clipboard operation
PCL2 copied to clipboard

[Feature] 第三方 Yggdrasil OAuth 登录支持

Open wuliaodexiaoluo opened this issue 1 year ago • 10 comments

Close #4941 (关联投票 #4948)

之前的 PR 由于推送时操作不当炸了 现在重开一个,但是可能有点问题.....

目前已知的 Bug

完成登录后会错误的进行刷新登录 但是我不知道为什么,也没法修,只能麻烦大家看看了....

~登录完成后可能因为刷新登录失败反复要求进行原始登录~ 此问题已做缓解性修复,应该不会那么频繁了

~提交内包含旧版本代码~ 相关部分代码已同步主仓 ~(手动 Merge)~

~会打印登录信息的代码等我回来再删~ 已删除

以下是计划制作但最终移除的部分

在服务器返回错误时显示 X-Yggdralt-Req-ID

由于 NetRequestOnce 历史遗留的问题,无法通过简单的逻辑微调实现,逻辑部分已在提交前回滚 ~(用户和皮肤站管理员体验-1)~

注意事项

申请权限需要(均为必选项)

offline_access openid Yggdrasil.PlayerProfiles.Select Yggdrasil.MinecraftToken.Create

需要在申请邮件里备注用于正式环境

wuliaodexiaoluo avatar Nov 17 '24 09:11 wuliaodexiaoluo

成品效果

https://pan.huang1111.cn/s/A6K18sB

wuliaodexiaoluo avatar Nov 17 '24 14:11 wuliaodexiaoluo

应该是没有啥是我要做的了(((

wuliaodexiaoluo avatar Nov 18 '24 00:11 wuliaodexiaoluo

申请权限需要(均为必选项)

User.Read offline_access openid Yggdrasil.PlayerProfiles.Select Yggdrasil.MinecraftToken.Create

如果只是获取 Minecraft Token,不需要 User.Read。申请权限时应遵循最小化原则。

角色信息已经包含在 ID Token 中,而且 User.Read 也拿不到角色信息。

tnqzh123 avatar Nov 18 '24 02:11 tnqzh123

如果只是获取 Minecraft Token,不需要 User.Read。申请权限时应遵循最小化原则。

角色信息已经包含在 ID Token 中,而且 User.Read 也拿不到角色信息。

源代码和正文已移除 User.Read 权限要求 (感谢指正)

wuliaodexiaoluo avatar Nov 18 '24 10:11 wuliaodexiaoluo

  • https://github.com/elyby/accounts/issues/37

ely.by 也有了类似计划,应该可以合在一起做

wuliaodexiaoluo avatar Dec 17 '24 13:12 wuliaodexiaoluo

  • 此 PR 并入 https://github.com/elyby/accounts/issues/37 一起做,反正短时间没计划合并

copytiao avatar Dec 24 '24 03:12 copytiao

https://github.com/yushijinhun/authlib-injector/issues/268

Authlib-Injector 那边要搞新协议了 @LTCatt #5168 做的时候能不能把 Yggdrasil API 根地址留下来?

copytiao avatar Jan 21 '25 10:01 copytiao

能不能求求他别搞了,我真没空跟进……

LTCatt avatar Jan 21 '25 13:01 LTCatt

能不能求求他别搞了,我真没空跟进……

Response by tnqzh123

启动器作者是否实现、如何实现 Yggdrasil Connect 是其个人自由。

等 23 号学校放假了看看能不能写掉(bushi

copytiao avatar Jan 22 '25 00:01 copytiao

我因为 Steven Qiu 的发言,错误地认为他是 Authlib-Injector 的开发者,所以闹了个误会。之后 yushijinhun 也来找我进行了充分沟通,我个人删除了此前带错误 ID 的评论。 特在此声明,此前评论与 yushijinhun 完全无关,也并非 Authlib-Injector 的官方意见,纯属我的个人失误,整错人了。我对莫名背锅的 yushijinhun 表示深深的歉意,也抱歉对 PCL 社区带来了一时的混乱,也望大家多多包容,就当春晚提前批小品看了……

LTCatt avatar Jan 25 '25 04:01 LTCatt