我想让谷歌退出此处的讨论.我们也没有使用用户凭据来访问Google API,而且我对Google的社交功能的其他访问权限不感兴趣.
似乎有很多选择:
使用OAuth2.0进行身份验证
这并没有真正提到Android,但它(部分)基于OAuth2访问令牌,但更重要的是基于JSON Web令牌id_token的验证.
这种对用户进行身份验证的方法还包括启动WebView以允许用户登录其Google帐户以及相当复杂的id_token验证.
使用OAuth2 / Google Play服务
Google Play服务中的一个示例更侧重于授权.它使用GoogleAuthUtil.getToken来检索access_token.它的一部分肯定是身份验证,因为对话框指出“登录到…”.
我是否正确地认为使用OAuth2.0流程和access_token作为身份验证机制是一种不好的做法? (将访问令牌存储为身份验证令牌).
我问的原因是因为Twitter和Facebook建议您实施“登录…”身份验证过程
> Implementing Sign in with Twitter
> Facebook Login Flow for Android
这似乎也完全基于OAuth访问令牌.
我不知道的任何其他选项允许您使用他们的Google帐户验证用户?
解决方法
http://android-developers.blogspot.com/2013/01/verifying-back-end-calls-from-android.html
你是对的.通常,使用访问令牌进行身份验证是一个坏主意.我们已做过多次演示,以提醒开发人员.
https://docs.google.com/presentation/d/1klTZheiQIhcty6MKvTYS12cw1Vyn4T1R4d60QCRYM60/edit?usp=drive_web
如果没有其他选项且只有一个访问令牌,您可以进行一些额外的验证,以使用它来登录并缓解潜在的安全问题. ID Token是在OpenIDCOnnect中设计的,并且用于身份验证.