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性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...