-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Proposal] External authentication flow #163
Comments
Yggdrasil 有专门的 validate 接口,用来检查 accessToken 可用性的,doc
BS 自带的那个 OAuth 实现可能不是很适用于这个 proposal:它仍然需要 OAuth 应用开发者在皮肤站内创建应用(填写应用名称和 callback URL),然而你不可能指望启动器作者能在所有皮肤站都创建一个应用;而且 BS 的 OAuth 也不会返回可以用于 Yggdrasil 登录的 accessToken,也没有实现多角色选择之类的操作(当然这步可以考虑丢给启动器) |
edited |
Followed by Group: "LittleSkin Community Admins"
|
个人觉得第二条启动系统浏览器这个方案可行 |
As discussed in https://t.me/blessing_skin/176521
externalLogin
/oauth
/ etc.) to metadata and specify whether to force external authenticationhttps://site.com/yggdrasil/oauth?client={clientToken}&callback=launcher://authlib-injector/callback
and wait for user interactionlauncher://authlib-injector/callback?client={clientToken}&token={accessToken}
/http://localhost:####/callback?client={clientToken}&token={accessToken}
b) 1. Redirect to
https://site.com/yggdrasil/oauth/complete?client={clientToken}&token={accessToken}
(more semantic but one more request)2. Use a magic string for callback (e.g.
oauth:{clientToken}
)Then client polls
https://site.com/yggdrasil/oauth/status?client={clientToken}
for callbackvalidate
to and do remaining steps as usualScenario
Issues
No scope, no application id
e.g. Blessing Skin Server already have a great OAuth implementation
Workarounds
accessToken
Requires extra UI & logic
Consider again exposing tokens to end users
The text was updated successfully, but these errors were encountered: