Firebase认证:打开新标签页时初始标签丢失认证状态
Firebase Auth初始标签页通过window.open打开新标签后丢失认证状态
问题详情
- 项目基于Firebase Authentication实现登录,整体功能正常
- 当通过
window.open('/foo', '_blank')(如右键菜单触发)打开同应用新标签页时,首次操作后初始标签页会丢失认证状态,导致所有权限依赖的订阅因权限不足取消,页面跳转到登录页 - 手动复制粘贴URL打开新标签页无此问题;若在新打开的标签页中再次通过
window.open打开新标签,认证状态正常,仅首次打开新标签时的初始标签页受影响
登录流程代码
当前登录函数及持久化设置如下:
const login = async (values: { email: string; password: string }) => { try { // 无关代码省略 const { email, password } = values; await setPersistence(auth, browserLocalPersistence); await signInWithEmailAndPassword(auth, email, password); } catch (error) { console.error(error); } finally { // 无关代码省略 } };
已尝试的处理
- 将
await setPersistence(auth, browserLocalPersistence);迁移至onAuthStateChanged监听器内,问题曾暂时解决,但2023年4月25日发现问题仍未彻底修复
求助
求可行的问题排查方向或解决方案。
内容的提问来源于stack exchange,提问作者PRSHL
相关产品推荐
相关产品推荐

