android – 允许用户使用他们的Google凭据访问您的应用的最佳方式

如果您的 Android应用程序需要用户注册,并且您希望允许您的用户通过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.它的一部分肯定是身份验证,因为对话框指出“登录到…”.

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

支持Facebook / Twitter登录

我问的原因是因为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

获取ID令牌并使用它登录到您的应用程序的后端.

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

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

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...