React Native中的Firebase Rest API身份验证ID令牌和令牌刷新

时间:2019-07-31 09:04:36

标签: firebase react-native firebase-authentication firebase-admin

Firebase官方文档说,用户的Firebase令牌ID在1小时后过期。生成新的令牌刷新令牌ID会传递到端点,客户端会在此响应中接收新的令牌ID。

所以问题是,要在用户不使用前台几个小时的情况下在我的React Native应用程序中保持持久的登录行为,我是否必须启动一个每小时更新一次Firebase令牌ID的后台服务?或者是他们为用户刷新Firebase令牌ID并保持用户登录的更好又简单的方法。

2 个答案:

答案 0 :(得分:1)

Firebase身份验证状态持久性(推荐)

Firebase Web API为 Authentication State Persistence 提供以下选项:

  • 本地:表示即使在 React Native 中关闭浏览器窗口或销毁活动时,状态也将保持不变。需要明确注销才能清除该状态。请注意,Firebase Auth Web会话是单个主机来源的,并且只会在单个域中保留。
  • 会话:指示该状态将仅在当前会话或选项卡中保持不变,并且在关闭用户进行身份验证的选项卡或窗口时将被清除。仅适用于网络应用。
  • :表示状态将仅存储在内存中,并且在刷新窗口或活动时将被清除。

直接使用Firebase状态持久性API是迄今为止最直接的解决方案。

但是,如果您设置使用Firebase Admin SDK从零开始实现状态持久性,则可以执行以下操作。

自定义状态持久性(不推荐)

  1. 用户登录。
  2. 服务器生成的Firebase用户ID和秘密令牌保存在存储中,例如React Native AsyncStorage。秘密令牌也存储在数据库中。
  3. 应用程序运行时,会定期检索刷新令牌以保持会话正常运行。
  4. 用户关闭应用程序。
  5. 用户打开应用程序。
  6. 应用程序检查存储中是否有Firebase用户ID和秘密令牌。如果找到,则将它们发送到服务器以确认密码是否与数据库中存储的密码匹配。
  7. 如果密码匹配,则服务器将基于Firebase用户ID生成自定义身份验证令牌,并将其发送回React Native应用。
  8. React Native应用程序会使用自定义身份验证令牌自动登录用户。

答案 1 :(得分:0)

使用react-native-firebase库。