我正在使用GitHub的oauth在网站上进行注册和身份验证。
流程是这样的:
用户点击sign up with github
,然后重定向到GitHub上的oauth登录页面,我要求范围user:email
。
用户成功登录GitHub后,我会收到回叫,创建用户并将用户登录到我的网站。
这很有效,但是我在以后更改范围时会遇到问题。
想象一下:
用户在上面的示例中注册,并希望稍后在我的应用需要访问私有存储库的位置使用某个功能。我将再次通过oauth流程向用户发送以添加repo
范围并保存新令牌。
用户现在注销或使用其他设备。当他想重新登录时,我必须再次通过oauth流程发送给他,但是我没有关于稍后添加的范围的信息。
当用户授予我的应用程序repo
范围时,oauth进程只询问user:email
范围(或根本没有范围)稍后添加的范围(在我的示例中为{ {1}}范围)被删除。
有没有办法启动普通登录过程,我不需要添加任何范围,GitHub只是确认想要登录的用户是我记录的用户?
这是oauth的运作方式,还是我错过了重要的东西?
答案 0 :(得分:0)
OAuth不是用于登录您网站的用户;它用于运输令牌,允许您网站的用户(您自己或通过其他方式进行身份验证)与其Github回购/帐户进行交互;另见:http://oauth.net/articles/authentication/