【问题标题】:Firebase authentication duration is too persistentFirebase 身份验证持续时间太持久
【发布时间】:2016-10-20 19:09:57
【问题描述】:

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

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

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

【问题讨论】:

  • 我想一个想法是获取火力基地生成的令牌并为其设置超时。
  • 你能实现一个由.onDisconnect设置的简单标志吗?即当用户登录时,设置一个firebase标志;好连接 = 真。然后,当连接被您提到的问题之一中断时,让 onDisconnect 设置 goodConnect = false。当用户重新连接时,如果该标志为假,取消他们的身份并将他们发送回初始登录屏幕? onDisconnect 在服务器上运行,因此它独立于您的应用程序。
  • 我不担心失去与 Firebase 的连接,我自己实施了一些安全措施来处理这个问题(该应用程序需要一些功能才能离线工作)。我担心的是有人可以访问物理设备(它是一部手机,我什至不能确定它是否有 PIN)并且可以毫无争议地访问用户可以访问的任何内容。承诺超时的想法绝对可以工作,我没有意识到你可以这样做,它绝对不在我见过的任何 firebase 文档中。

标签: firebase firebase-authentication


【解决方案1】:

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

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

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

【讨论】:

  • 非常感谢,这是我绝对可以使用的东西,我只是希望这些信息更容易找到。另外,您知道是否可以提前安排注销操作?我的想法是,如果用户保持断开连接一个小时,我也许可以使用断开连接侦听器将用户注销,但目前我不确定如何实际操作。
  • 嗨 Frank van Puffelen,关于您的第二点,我有一个问题,如果我想检索数据或插入数据,那么我需要使用访问令牌吗?是的,那么如何使用它?
  • @FrankvanPuffelen 我已经知道如何从客户端强制执行 singOut,我希望 Firebase(或除设备本身之外的任何东西)能够强制执行它。客户端我可以添加一个 AuthStateListener 来安排一个signOut。我想它可能是我使用的,但我不确定监听器是否会在重置后持续存在。
  • 如何刷新允许用户自动访问Firebase后端的token?
猜你喜欢
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-04
  • 1970-01-01
  • 2018-09-29
  • 2019-06-25
相关资源
最近更新 更多