首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Firebase意外地持久化匿名auth,可用于onAuthStateChanged

Firebase意外地持久化匿名auth,可用于onAuthStateChanged
EN

Stack Overflow用户
提问于 2016-07-03 00:52:44
回答 1查看 969关注 0票数 3

我一直在使用Firebase匿名程序作为一个React,主要是为了确保用户只能读写自己的数据(例如,在安全规则中检查auth && auth.uid )。

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

  1. 用户注册 FirebaseRef.authAnonymously(( authData) => { if (错误){ //句柄错误}{/将令牌存储在设备存储区(authData.token);});
  2. 当用户稍后打开应用程序时,使用存储的令牌创建会话。 firebaseRef.authWithCustomToken(storedToken,(错误) => { if (错误){ //句柄错误}-{ //进行} });

在Firebase 2.4.2中,匿名auth返回的令牌似乎适用于自定义auth。

升级到Firebase 3.1之后,这个流就不再工作了--具体来说,尝试使用signInAnonymously-generated令牌创建一个-generated会话将返回错误auth/invalid-custom-token

然而,没有举行一次持久会议的问题似乎已经解决。现在,使用Firebase 3.1:

  1. 用户注册 Firebase.auth().signInAnonymously().then(用户=> { //存储令牌user.getToken().then(令牌=>存储(令牌)) });
  2. 每当用户稍后打开应用程序时,会话仍然可用,并调用此侦听器。 Firebase.auth().onAuthStateChanged(用户=> { // user仍然是身份验证});

我不清楚这是如何工作的,Firebase是如何持久化会话的?

EN

Stack Overflow用户

回答已采纳

发布于 2016-07-03 14:51:29

在Firebase的2.x版本上,JavaScript SDK身份验证工作在runs上,但是会话信息在运行之间没有持久化。这样做的原因是本地存储( Firebase用于将此信息保存在浏览器中)在ResponseNative中不可用。

在Firebase的JavaScript SDK 3.0版本中,身份验证不再适用于Reactinative上。

从Firebase的3.1版开始,JavaScript SDK身份验证再次在ReveNative上工作。会话详细信息在响应本机的异步存储中持久化。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38165781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档