Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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身份验证持续时间太长_Firebase_Firebase Authentication - Fatal编程技术网

Firebase身份验证持续时间太长

Firebase身份验证持续时间太长,firebase,firebase-authentication,Firebase,Firebase Authentication,在上下文中,我尝试将Firebase用于身份验证和数据存储。由于我的应用程序处理潜在的敏感数据,Firebase提供的保密功能(根据他们的博客,所有Firebase通信都是通过HTTPS完成的)似乎是保护我的数据安全的好方法。事实上,我对Firebase的唯一问题是身份验证的持续时间远远超过了它应该持续的时间。据我所知,它一直持续到设备重置、应用程序重建和连接中断。更糟糕的是,我不知道它会持续多久。我试着在网上搜索,但到处都找不到信息。据我所知,大约持续一天,但这只是一个猜测。我正在使用电子邮件

在上下文中,我尝试将Firebase用于身份验证和数据存储。由于我的应用程序处理潜在的敏感数据,Firebase提供的保密功能(根据他们的博客,所有Firebase通信都是通过HTTPS完成的)似乎是保护我的数据安全的好方法。事实上,我对Firebase的唯一问题是身份验证的持续时间远远超过了它应该持续的时间。据我所知,它一直持续到设备重置、应用程序重建和连接中断。更糟糕的是,我不知道它会持续多久。我试着在网上搜索,但到处都找不到信息。据我所知,大约持续一天,但这只是一个猜测。我正在使用电子邮件和密码作为登录凭据

我的问题有两部分,有人知道Firebase身份验证的默认持续时间吗?有人知道如何缩短它吗?否则,是否有其他类似于Firebase的服务,您可以在其中设置身份验证持续时间

如果我可以将持续时间缩短到4小时,Firebase将非常完美,否则我可能必须实现自己的身份验证,因为只要Firebase持续的身份验证就太不安全了。

Firebase身份验证(对于3.x或更高版本的SDK)使用两种令牌:

  • 标识用户的令牌。此令牌是在用户使用应用程序登录且未过期时创建的。要删除此令牌,请注销用户

  • 允许用户访问Firebase后端的令牌。此令牌基于上一个令牌,有效期为一小时,由Firebase SDK自动创建和刷新


  • 我想一个想法是获取firebase生成的令牌并在其上设置一个超时。你能实现一个由.onDisconnect设置的简单标志吗?i、 e.用户登录时,设置firebase标志;goodConnect=true。然后,当连接因您提到的问题之一而中断时,请将onDisconnect设置为goodConnect=false。当用户重新连接时,如果该标志为false,则取消对其的授权并将其发送回初始登录屏幕?onDisconnect在服务器上运行,因此它是你的应用程序的自治。我不担心失去与Firebase的连接,我自己已经实现了一些安全性来处理这个问题(应用程序需要一些功能才能脱机工作)。我担心的是有人访问物理设备(这是一部手机,我甚至不能确定它是否有PIN),并且对用户可以访问的任何内容都有无争议的访问权限。超时的想法肯定能奏效,我不知道你能做到,我所看到的firebase文档中肯定没有。非常感谢你,这是我绝对可以使用的,我只是希望这些信息更容易找到。作为一个额外的问题,您知道是否可以提前安排注销操作?我的想法是,如果用户保持一个小时的断开连接,我可能可以使用断开连接侦听器将其注销,但目前我不确定如何实际执行。嗨,Frank van Puffelen,关于你的第二点,我有一个问题,如果我想检索数据或插入数据,那么我需要使用访问令牌?是的,那么如何使用它呢?@FrankvanPuffelen我已经知道如何从客户端强制执行singOut,我希望Firebase(或设备本身以外的任何东西)能够强制执行它。客户端我只需添加一个安排注销的AuthStateListener。我想这可能是我使用的,但我不确定侦听器是否会在重置过程中保持不变。如何刷新令牌以允许用户自动访问Firebase后端?