我正在编写一个安卓应用,它是一个多人游戏的客户端,我需要一个可靠的方式来验证用户的身份,以便连接用户的游戏账户,存储他们在游戏中的进度,并允许他们以后重新登录,并在他们离开的地方继续游戏。
我需要一种可靠的方式来验证用户的身份,以便将用户与他们的游戏账户连接起来,存储他们在游戏中的进度,并允许他们稍后重新登录并继续玩他们离开的地方。
一个简单的解决方案是实现基于密码的登录,并管理所有 "自己 "的密码(在我的应用和游戏服务器中)。然而,在移动设备上输入密码是相当不方便的。在阅读了这个话题之后,他们说最好的登录方式是无密码提示的登录(一般情况下尽量减少用户交互)。
我希望在android应用中实现无密码登录的最佳方式是基于google账号的登录。每个android设备都已经连接了google账号了吧?
在网上和stackoverflow上搜索,我非常惊讶地发现,我无法找到关于我的问题的好文档,我以为这是一个标准的问题,在我之前一定有很多人遇到过。
在我看来,有些事情是浮夸的。
那么,什么是实现无密码便捷登录的最佳方式呢?
在这种情况下,我对 "最佳 "的定义是。
取决于你需要如何识别你的用户。如果电子邮件地址就够了,你可能正在寻找OpenID Connect。你会得到一个签名的ID令牌,如果签名通过,你可以相信里面的信息,其中包括Gmail地址。谷歌有库让这一切变得简单,Android设备已经有了令牌,所以用户不必输入密码。更多信息在这里。
https:/developers.google.comidentityprotocolsoauth2native-app。
我的应用也有类似的问题,我发现最好的解决方案是实现了 FIDO协议 允许用户使用安全存储在其移动设备中的私钥进行登录。
在注册在线服务时,用户的客户端设备会创建一个新的密钥对。它保留了私钥,并在在线服务中注册了公钥。认证是由客户端设备通过签署一份挑战书来证明拥有服务的私钥。
为了直观地体现出来。这里有一张图解释FIDO的工作原理。.
为什么说这是最好的解决方案?
如何在Android中实现它。
对于安卓应用来说,最简单的方法就是使用... 卡特是一个类似于Firebase的认证服务,但专注于无密码登录。你可以建立一个免费账户来获取你的API密钥。
文档。 这是Android系统实现上述FIDO协议的指南。.
如果你想自己做,你可以检查出的 安卓钥匙店系统.