使用Google+登录请求更少的权限

时间:2013-08-22 22:56:04

标签: google-api google-plus google-oauth

我正在使用我网站上的Google+登录按钮,以便用户无需创建用户帐户。我对Google+按钮的任何社交方面都不感兴趣(目前)。

我希望向用户呈现这样的内容: enter image description here

但相反他们会得到这样的东西: enter image description here

我觉得这会让一些潜在的新用户反弹。如何使用顶部屏幕截图预设用户?

我将登录按钮属性设置为: data-scope="https://www.googleapis.com/auth/userinfo.email"或... plus.me但似乎无论如何都会包含plus.info。这意味着我的用户被要求获得所有额外的权限。

我读过这篇文章:Sign in with google, but not google+但是......

This Google pagethis Google page推荐使用其他登录方式登录Google+登录按钮。而且有一天我可能想要使用社交功能,这对我来说很有意义。

所以,我做的事情是愚蠢的吗?有没有办法在不要求第二个屏幕截图中的所有权限的情况下使用Google+登录按钮?

2 个答案:

答案 0 :(得分:6)

“同意”对话框中列出的权限与您请求的范围相关联。您的示例中的差异是plus.meplus.login之间的差异。如果您使用的是传统OAuth 2.0登录流程,则只需切换正在使用的范围即可反映您未请求其他用户数据的事实。但是,如果您使用的是Google+登录按钮,系统会自动添加plus.login范围,因为它是启用Google+登录功能的附加功能的范围。

详细了解https://developers.google.com/+/api/oauth#scopes的范围。而且,如果您不想使用Google+登录的其他功能,可以在https://developers.google.com/accounts/docs/OAuth2了解有关OAuth 2.0流量的更多信息。

答案 1 :(得分:0)

使用Google登录时,您可以传入范围。谷歌登录扑示例附带的示例应用程序包括请求访问“联系人”。因此,要删除该范围,只需要从scopes参数中删除该范围即可。您可能需要重新启动或重新安装应用程序才能使效果生效。

有关可用范围的列表,请参见: https://developers.google.com/identity/protocols/oauth2/scopes

GoogleSignIn _googleSignIn = GoogleSignIn(
  scopes: <String>[
  //  'email', -> remove this
  //  'https://www.googleapis.com/auth/contacts.readonly', -> remove this
  ],
);

enter image description here