Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase Unity,如何在不记住密码的情况下保持登录状态?_Firebase_Unity3d_Firebase Authentication - Fatal编程技术网

Firebase Unity,如何在不记住密码的情况下保持登录状态?

Firebase Unity,如何在不记住密码的情况下保持登录状态?,firebase,unity3d,firebase-authentication,Firebase,Unity3d,Firebase Authentication,如果我能记住用户的密码,我可以每次使用Email和PasswordAsync进行身份验证登录,但这是一种糟糕的安全做法。当我重新启动游戏时,Auth变量需要再次登录 如何使用与上次登录时相同的会话?是否有任何登录令牌可供我反复存储和使用?我听说Firebase有一个1小时后过期的令牌,这太疯狂了 当然,用户停止玩游戏并重新开始玩游戏的时间间隔将超过1小时。其他人如何使用Firebase登录制作游戏?我不记得在其他游戏中每小时登录一次。如果您担心安全问题,请不要保存用户名和密码 只需指定一个脚本来

如果我能记住用户的密码,我可以每次使用Email和PasswordAsync进行身份验证登录,但这是一种糟糕的安全做法。当我重新启动游戏时,
Auth
变量需要再次登录

如何使用与上次登录时相同的会话?是否有任何登录令牌可供我反复存储和使用?我听说Firebase有一个1小时后过期的令牌,这太疯狂了


当然,用户停止玩游戏并重新开始玩游戏的时间间隔将超过1小时。其他人如何使用Firebase登录制作游戏?我不记得在其他游戏中每小时登录一次。

如果您担心安全问题,请不要保存用户名和密码

只需指定一个脚本来存储电子邮件和密码信息,然后将它们存储在
静态
字符串变量中。之后添加
DontDestroyOnLoad(游戏对象)在该脚本的唤醒功能中,以便在加载新场景时脚本不会被破坏


如果您还需要在游戏关闭和重新打开时提供此信息,那么您必须获取电子邮件和密码,并保存它。如果您想让其他人更难解密密钥,您可以在自己的服务器上发送并保存密钥,或者您可以在设备本身上进行解密,但应该在保存密钥之前对密钥执行更多操作,以便密钥不能像那样轻松检索


加载登录信息时,只需加载保存的文件,然后使用Email和PasswordAsync将其加载并传递到
Auth.signin函数中

ID令牌将在一小时后过期,但将无限期刷新。Firebase身份验证会话不应过期。您是否正在正确检查身份验证状态。我不知道Unity中的等价物是什么,但对于其他平台,您通常会检查
onAuthStateChanged
,以检测用户是否登录。

谢谢。我还没有想到将加密密钥保留在服务器端的方法。尽管如此,这仍然意味着我正在存储用户的密码,而且我也可以知道每个人的密码,因为我有密钥。但我认为这比在服务器端存储用户密码要好,如果Firebase仍然无法生成长寿命登录令牌的话,这是目前最好的做法。”尽管如此,这仍然意味着我正在存储用户密码,而且我也可以知道每个人的密码,因为我有密钥“No”。不正确,因为您只有服务器上的密钥。加密文件保存在用户设备上。您需要密钥+文件才能取回此用户信息。此外,解密是在设备端而不是服务器端完成的。您只需从服务器检索密钥,然后解锁/解密设备上的文件。