gpt4 book ai didi

Firebase 意外地坚持匿名身份验证,可用于 onAuthStateChanged

转载 作者:行者123 更新时间:2023-12-04 04:12:45 31 4
gpt4 key购买 nike

我一直在为 React Native 应用程序使用 Firebase 匿名身份验证,主要是为了确保用户只能读/写他们自己的数据(例如检查安全规则中的 auth && auth.uid)

以前,使用 Firebase 2.4.2,我的身份验证方案如下:

  1. 用户注册

    firebaseRef.authAnonymously((error, authData) => {
    if (error) {
    // handle error
    } else {
    // store the token on device
    store(authData.token);
    }
    });
  2. 每当用户稍后打开应用时,使用存储的 token 创建一个 session

    firebaseRef.authWithCustomToken(storedToken, (error) => {
    if (error) {
    // handle errors
    } else {
    // proceed
    }
    });

Firebase 2.4.2 中匿名身份验证返回的 token 似乎适用于自定义身份验证。

升级到 Firebase 3.1 后,此流程不再有效——具体来说,尝试使用 signInAnonymously 生成的 token 创建 signInWithCustomToken session 会返回错误 身份验证/无效自定义 token

但是,没有持久 session 的问题似乎已经消失了。现在,使用 Firebase 3.1:

  1. 用户注册

    firebase.auth().signInAnonymously().then(user => {
    // store token
    user.getToken().then(token => store(token))
    });
  2. 每当用户稍后打开应用程序时, session 仍然可用并且会调用此监听器

    firebase.auth().onAuthStateChanged(user => {
    // user is still authenticated
    });

我不清楚这是如何工作的,Firebase 如何保持 session ?

最佳答案

在 Firebase JavaScript SDK 的 2.x 版中,身份验证在 React Native 上运行,但 session 信息不会在运行之间的任何地方保留。这样做的原因是本地存储(Firebase 用于在浏览器中保存此信息)在 React Native 中不可用。

在 Firebase JavaScript SDK 的 3.0 版中,身份验证不再适用于 React Native。

从 Firebase JavaScript SDK 身份验证的 3.1 版开始,它再次适用于 React Native。 session 详细信息保存在 React Native's Async Storage 中.

关于Firebase 意外地坚持匿名身份验证,可用于 onAuthStateChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38165781/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com