android - 在 Android 应用程序中实现无密码方便登录的最佳方法? (客户端-服务器架构)

标签 android authentication google-signin google-smartlockpasswords

我正在编写一个作为多人游戏客户端的 Android 应用。

我需要一种可靠的方式来验证用户身份,以便将用户与他们的游戏帐户联系起来,存储他们的游戏进度,并允许他们稍后重新登录并从他们离开的地方继续玩。

一个简单的解决方案是实现基于密码的登录并“由我自己”管理密码(在我的应用程序和游戏服务器中)。然而,在移动设备上输入密码非常不方便。 Reading up on the topic ,他们说最好的登录是没有密码提示的登录(通常尽可能少的用户交互)。

我希望在 Android 应用程序中实现可靠的无密码登录的最佳方式是基于谷歌帐户的登录。每个 Android 设备都已经与一个 Google 帐户关联,对吧?

在网络和 stackoverflow 上搜索时,我非常惊讶我无法找到关于我的问题的良好文档,我认为这是一个标准问题,许多人在我之前一定遇到过。

一些我觉得很有前途的事情:

  1. > Google Sign-In Api
  2. > Use Google Smart Lock to sign in with a google account (这在任何方面都比登录 api 好吗?)
  3. 使用 Google Smart Lock 自动创建我自己的登录名/密码凭据并“在后台”使用它们

那么,实现无密码便捷登录的最佳方式是什么?

在这种情况下,我对“最佳”的定义是:

  1. 对用户来说最方便。尽可能少的互动。
  2. 相当安全以防止帐户劫持。

最佳答案

取决于您需要如何识别用户。如果电子邮件地址足够,您可能正在寻找 OpenID Connect。您将获得一个签名的 ID token ,如果签名通过验证,您可以信任其中的信息,其中包括 Gmail 地址。谷歌拥有让这一切变得简单的库,Android 设备已经有了一个 token ,因此用户不必输入密码。 更多信息在这里:

https://developers.google.com/identity/protocols/oauth2/native-app

Google Games login可能更适合你,Firebase无需运行您自己的服务器即可更轻松地管理用户数据。

关于android - 在 Android 应用程序中实现无密码方便登录的最佳方法? (客户端-服务器架构),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40318204/

相关文章:

android - handleWindowVisibilty : no activity for the token android. os.binderproxy

java - 有没有办法从客户端的 google oauth2.0 token 获取 firebase 身份验证 token

android - 具有整数列的 SQLite 表存储字符串

android - Android手机可以使用windows DirectX库吗?

java - 使用自定义 header 和授权请求 HTTP rest 资源?

java - 如何为 ListView 项目设置高亮颜色?

使用两个 mysql 表的详细信息进行 PHP 登录

php - 使用 php/apache 中的身份验证脚本保护目录中的文件

php - 我的 Facebook 登录对话框在 IE 中没有关闭

android - 任务 API - 如何将异步调用重构为同步调用但能够捕获所需的异常 (ApiException)