允许用户使用其Google凭据访问您的应用的最佳方式

时间:2013-07-13 11:28:36

标签: android security authentication oauth-2.0 google-oauth

如果您的Android应用程序需要用户注册,并且您希望允许您的用户通过Google登录,那么您将如何处理?

我想让Google+登录此处的讨论。我们也没有使用用户凭据来访问Google API,我对Google +社交功能的其他访问权限不感兴趣。

似乎有很多选择:

使用OAuth2.0进行身份验证

Google OAUth2 Login页面

中记录

这并没有真正提及Android,但它(部分)基于OAuth2访问令牌,但更重要的是基于JSON Web令牌id_token的验证。

这种对用户进行身份验证的方法还包括启动WebView以允许用户登录其Google帐户以及相当复杂的id_token验证。

使用OAuth2 / Google Play服务

Google Play服务中的一个示例更侧重于授权。它使用GoogleAuthUtil.getToken来检索access_token。它的一部分肯定是身份验证,因为对话框指出“登录到...”。

enter image description here

我是否正确地认为使用OAuth2.0流程并将access_token作为身份验证机制是一种不好的做法? (将访问令牌存储为身份验证令牌)。

支持Facebook / Twitter登录

我问的原因是Twitter和Facebook推荐您实施“使用...登录”身份验证过程的方式

这似乎也完全基于OAuth访问令牌。

我不知道的任何其他选项允许您使用其Google帐户对用户进行身份验证?

2 个答案:

答案 0 :(得分:4)

你需要的是这个 http://android-developers.blogspot.com/2013/01/verifying-back-end-calls-from-android.html

即。获取一个ID令牌并使用它登录到您的应用程序的后端。

你是对的。通常,使用访问令牌进行身份验证是一个坏主意。我们已做过多次演示,以提醒开发人员。 https://docs.google.com/presentation/d/1klTZheiQIhcty6MKvTYS12cw1Vyn4T1R4d60QCRYM60/edit?usp=drive_web

如果没有其他选项且只有一个访问令牌,您可以进行一些额外的验证,以使用它来登录并缓解潜在的安全问题。 ID Token是在OpenIDCOnnect中设计的,并且用于身份验证。

答案 1 :(得分:2)

推荐的方法是使用新的Google+登录信息: https://developers.google.com/+/mobile/android/sign-in