记住 Firebase Unity 游戏中的身份验证

Posted

技术标签:

【中文标题】记住 Firebase Unity 游戏中的身份验证【英文标题】:Remember authentication in Firebase Unity Games 【发布时间】:2016-12-06 14:31:00 【问题描述】:

我正在为我的游戏中的在线数据使用新的官方 firebase unity(测试版)包。每当我在 ios 中杀死应用程序时,我都必须再次输入我的登录凭据。我不想在 PlayerPrefs 中保存电子邮件和密码,因为这似乎完全不安全。是否(已经)有一种方法可以保持登录状态,以便用户在下载应用程序后只需登录一次,之后再也不需要登录?

感谢您的帮助, 亚历克斯

【问题讨论】:

【参考方案1】:

如果应用程序终止,则没有内置方法可以保持用户会话。您可以为此创建 Firebase 用户令牌。但是,您不能通过 Unity SDK 创建这些令牌。您将需要运行 Admin SDK (https://firebase.google.com/docs/auth/admin/create-custom-tokens),使用它生成它们并将它们发送到客户端。 SDK 中的 TokenAsync 函数只生成一个 ID 令牌。不是访问令牌。

几天前我基于此实现了一个解决方案,结果发现 Admin SDK 生成的自定义令牌的过期时间限制为 3600 秒(1 小时)。这很短,最终它并没有真正帮助我自动登录用户,如果他们遇到崩溃或只是终止了应用程序。

您可以改为使用持续时间更长的 Facebook/Google 令牌。 Facebook Unity-sdk 非常易于使用,您可以直接从中获取访问令牌,您可以使用该令牌通过 Firebase Unity-sdk 进行身份验证。我还没有尝试过 Google 登录解决方案,所以我无法对此发表评论。

编辑: 请不要在本地存储电子邮件/密码。这不是要走的路。

【讨论】:

以上是关于记住 Firebase Unity 游戏中的身份验证的主要内容,如果未能解决你的问题,请参考以下文章

使用 Unity 进行 Firebase 电话身份验证

添加 Firebase Unity 后,Google Play 游戏停止正常工作

Unity 中的 Google Firebase 身份验证:如何读取错误代码

Firebase Unity 插件:如何保持用户会话? (自动登录)

Unity 中的 Firebase - 禁用持久性

使用 Facebook 令牌的 Firebase Unity SDK 身份验证