改变范围的GitHub oauth流程

时间:2015-12-07 14:29:59

标签: oauth-2.0 github-api

我正在使用GitHub的oauth在网站上进行注册和身份验证。

流程是这样的:

  • 用户点击sign up with github,然后重定向到GitHub上的oauth登录页面,我要求范围user:email

  • 用户成功登录GitHub后,我会收到回叫,创建用户并将用户登录到我的网站。

这很有效,但是我在以后更改范围时会遇到问题。

想象一下:

用户在上面的示例中注册,并希望稍后在我的应用需要访问私有存储库的位置使用某个功能。我将再次通过oauth流程向用户发送以添加repo范围并保存新令牌。

用户现在注销或使用其他设备。当他想重新登录时,我必须再次通过oauth流程发送给他,但是我没有关于稍后添加的范围的信息

当用户授予我的应用程序repo范围时,oauth进程只询问user:email范围(或根本没有范围)稍后添加的范围(在我的示例中为{ {1}}范围)被删除。

有没有办法启动普通登录过程,我不需要添加任何范围,GitHub只是确认想要登录的用户是我记录的用户?

这是oauth的运作方式,还是我错过了重要的东西?

1 个答案:

答案 0 :(得分:0)

OAuth不是用于登录您网站的用户;它用于运输令牌,允许您网站的用户(您自己或通过其他方式进行身份验证)与其Github回购/帐户进行交互;另见:http://oauth.net/articles/authentication/