为什么有时我只会出现OAuth 2同意对话框?

时间:2018-10-05 16:47:35

标签: authentication oauth-2.0

我只是想在这里检查一下我的理解。

当我登录某些应用程序时,例如使用我的Google帐户的Dropbox,我会看到一个同意对话框: enter image description here

然后,我可以按照我的期望撤销我的Google帐户中的访问权限。

但是,当我登录其他应用时,例如SoundCloud,我根本没有得到同意对话框,只是直接进入了我。SoundCloud也没有出现在我的Google帐户的可撤消应用程序列表中。

我认为这是因为SoundCloud不需要有关我的Google帐户的任何信息或权利,因此不需要征求同意。也就是说,它所需要的只是身份验证,不需要身份验证(大概是因为为此目的输入您的凭据已被视为足够同意)。

我只是想确认自己的假设是正确的。

1 个答案:

答案 0 :(得分:1)

您已找到问题的答案。

如果您检查Dropbox的登录请求,它将包含一个特殊的作用域值sudo grep "^$(date -d -10min +'%mmm %dd %h')" /var/log/syslog | grep 'removed' ,代表管理您的联系人(reference)。

Dropbox范围参数-https://www.google.com/m8/feeds

但是,如果您使用SoundCloud进行检查,则只会看到配置文件特定的范围,例如scope=https://www.google.com/m8/feeds+email+profile

Soundcloud范围参数-email profile openid

是的,由于Dropbox授权请求中存在特殊范围,因此您将获得同意页面。并且同意页面与范围值匹配。

进一步阅读this blog有关默认范围和特殊范围的信息。

p.s-您可以使用浏览器调试器监视这些范围值。您必须启用调试器的弹出窗口和导航才能看到它们。我用chrome提取了这些值。