Oauth 2.0 使用Google OAuth更改权限
我正在升级帐户以使用新的Oauth 2.0 使用Google OAuth更改权限,oauth-2.0,google-oauth,Oauth 2.0,Google Oauth,我正在升级帐户以使用新的plus.loginscope,因此我测试了添加一个仅具有userinfo作用域的用户,然后使用添加的plus.login重新登录。结果是在授权访问面板中引入了一个新条目,从后一个调用返回的访问令牌只有userinfo权限。我通过做一个经过验证的令牌调用以及尝试列出人员来测试这一点 这是预期的行为吗?如果是,我是否应该提前撤销旧令牌?我认为通过/revoke操作可以实现这一点 更新:。这是使用Ruby的Omniauth gem。我不确定用户如何在授权访问面板中看到超过1个
plus.login
scope,因此我测试了添加一个仅具有userinfo
作用域的用户,然后使用添加的plus.login
重新登录。结果是在授权访问面板中引入了一个新条目,从后一个调用返回的访问令牌只有userinfo
权限。我通过做一个经过验证的令牌调用以及尝试列出人员来测试这一点
这是预期的行为吗?如果是,我是否应该提前撤销旧令牌?我认为通过/revoke
操作可以实现这一点
更新:。这是使用Ruby的Omniauth gem。我不确定用户如何在授权访问面板中看到超过1个条目,但在这种情况下,我可以看到2个条目。在昨天测试了各种场景之后,我有大约6个条目都属于同一个应用程序!请注意,我在任何时候都没有更改客户机ID,实际上只有一个客户机ID
我希望我描述的情况可以被其他人复制;只需对Google端URL进行黑客攻击,删除plus.login作用域,然后再次登录,同时保持URL不变
更新(2):我还发现:“您不应该将userinfo.profile或plus.me与此作用域结合使用,因为它们隐式包含,会为您的用户创建一个令人困惑的权限对话框。”事实上,这不仅仅是一个UX权限问题;看起来Google实际上不会针对用户存储“plus.me”范围,因此这意味着即使用户已经授予了权限,它也会始终显示OAuth权限对话框(我认为这是因为它会进行简单的平等性检查,并通知请求plus.me,但不会针对用户存储)
更新(3):关于使用错误登录的错误是由我的代码在没有更新登录上的令牌数据的情况下执行类似user.login | | user.signup的操作引起的。因此,现在它在每次登录后更新访问令牌和刷新令牌。(我仍然不明白为什么每个客户机用户组合需要有多个令牌。)这听起来不是正确的行为。您能否从后面的调用中获取访问令牌并将其插入-这将显示其授权的作用域 您也在哪个平台上实施?如果你有一个片段,可能会有所帮助
更新:在之前验证后尝试添加plus.login,我得到了一个新的同意对话,所以在那里一切看起来都很顺利。可能是特定于客户的问题?这听起来不像是正确的行为。您能否从后面的调用中获取访问令牌并将其插入-这将显示其授权的作用域 您也在哪个平台上实施?如果你有一个片段,可能会有所帮助
更新:在之前验证后尝试添加plus.login,我得到了一个新的同意对话,所以在那里一切看起来都很顺利。可能是特定于客户端的问题?可能在发出新的令牌之前,您没有撤销先前已验证客户端的令牌 您可以通过以下JavaScript演示测试在升级作用域后撤销的效果:
最后一点注意事项:希望用户能够更习惯于查看他们从中发布的授权令牌,这样可以更好地消除已连接应用程序的重复实例。在发布新的令牌之前,您可能没有撤销先前已验证客户端的令牌 您可以通过以下JavaScript演示测试在升级作用域后撤销的效果: