bs-community / blessing-skin-plugins

Official plugins for Blessing Skin.
MIT License
79 stars 38 forks source link

External authentication flow for Yggdrasil API #146

Open graytoowolf opened 2 years ago

graytoowolf commented 2 years ago

支援外置認證方式,見 https://github.com/yushijinhun/authlib-injector/issues/163

mochaaP commented 2 years ago

tracked in https://github.com/yushijinhun/authlib-injector/issues/163

graytoowolf commented 2 years ago

这样是不是更麻烦了。 我还原一下问题。用户使用快捷登录注册blessing-skin.进入网站设置好游戏名、皮肤。然后启动器登录,突然发现没有密码。再回到网站修改密码,还需要原密码。这里又没有任何提示。用户就会进入一种“修改密码需要原密码又没有原密码”循环。这时候就很迷茫,就想放弃了。

要是一开始快捷登录完成就可以让用户自己设置密码就不会出现这种情况了。

mochaaP commented 2 years ago

沒有,這樣可以直接丟掉密碼登入的流程,你怎麼登入皮膚站就怎麼在遊戲中驗證。

graytoowolf commented 2 years ago

沒有,這樣可以直接丟掉密碼登入的流程,你怎麼登入皮膚站就怎麼在遊戲中驗證。 这样不是就很麻烦了吗。皮肤站能直接登录进去很容易让用户忽略掉丢掉密码登入的流程。

yushijinhun commented 2 years ago

@graytoowolf 有没有一种可能,就是不需要输密码了。

tnqzh123 commented 2 years ago

这样不是就很麻烦了吗。皮肤站能直接登录进去很容易让用户忽略掉丢掉密码登入的流程。

不是很懂你的意思

「丢掉密码登入」是指在启动器或者游戏内登录,相当于说启动器或者游戏直接把登录这部分工作丢给了皮肤站,皮肤站那边登录完成就相当于在启动器或者游戏内登录完成了

参考 BS 现有的第三方登录流程,是不是你在 MS 或者其他平台登录完成之后就直接完成了皮肤站的登录?

graytoowolf commented 2 years ago

是的就是再其他网站登录之后皮肤站就直接进入用户中心了。但是现在皮肤站账号是没有密码的。启动需要用什么办法来登录了。

graytoowolf commented 2 years ago

@graytoowolf 有没有一种可能,就是不需要输密码了。

这个我知道的,快捷登录是不需要密码,但是启动器外置登录是需要密码的。

tnqzh123 commented 2 years ago

这个我知道的,快捷登录是不需要密码,但是启动器外置登录是需要密码的。

有没有一种可能,让启动器用上皮肤站的快捷登录?

这样一来就可以套娃登录了,启动器用皮肤站的快捷登录、而皮肤站用第三方平台的快捷登录,就消灭掉了「在启动器输入密码」这个流程

BS v4 开始其实就有作为 OAuth 服务端的能力了(doc),只不过存在感比较低,没什么人用

graytoowolf commented 2 years ago

这个可以的。但是需要启动器作者添加功能,难道是不是有点大了

tnqzh123 commented 2 years ago

这个可以的。但是需要启动器作者添加功能,难道是不是有点大了

「在皮肤站快捷登录完成就可以让用户自己设置密码」其实算是一种针对在一些只能用密码登录、不能用快捷登录的场景的 workaround

这种做法其实是与 OAuth 的理念背道而驰的,OAuth 设计之初就是为了减少用户密码的使用(“允许用户让第三方应用访问该用户在某一网站上存储的私密的资源,而无需将用户名和密码提供给第三方应用”),这也是为什么 BS 的快捷登录插件没有考虑「在皮肤站快捷登录完成就可以让用户自己设置密码」

而且现在 Mojang 正版登录也改成 OAuth 了,再针对外置登录做同样的改动的话工作量不会很大吧,毕竟大致流程是相同的,甚至在某些步骤上还更简化了

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. 该 issue 在近期内缺少更新或答复,如果仍然缺少更新或响应,issue 将被关闭。

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. 该 issue 在近期内缺少更新或答复,如果仍然缺少更新或响应,issue 将被关闭。