如何存储firebase身份验证会话
Posted
技术标签:
【中文标题】如何存储firebase身份验证会话【英文标题】:How to store firebase authentication session 【发布时间】:2021-11-14 15:05:52 【问题描述】:我有一个使用 firebase 身份验证在 vue 中制作的 Web 应用程序。这里的问题是我每次重新加载页面都需要登录。
【问题讨论】:
【参考方案1】:Firebase 身份验证默认将用户的凭据存储在浏览器的本地存储中,并在页面重新加载时从那里恢复。不过,这需要调用服务器,这意味着如果您在页面加载时立即访问Firebase.auth().currentUser
,它可能尚未设置。
为防止出现此问题,请使用getting the current user 上文档的第一个 sn-p 中所示的身份验证状态侦听器。
对于 v8 及更早版本的 SDK:
firebase.auth().onAuthStateChanged((user) =>
if (user)
// User is signed in, see docs for a list of available properties
// https://firebase.google.com/docs/reference/js/firebase.User
var uid = user.uid;
// ...
else
// User is signed out
// ...
);
对于 v9:
import getAuth, onAuthStateChanged from "firebase/auth";
const auth = getAuth();
onAuthStateChanged(auth, (user) =>
if (user)
// User is signed in, see docs for a list of available properties
// https://firebase.google.com/docs/reference/js/firebase.User
const uid = user.uid;
// ...
else
// User is signed out
// ...
);
【讨论】:
以上是关于如何存储firebase身份验证会话的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法让一个人在跨子域的 firebase 上进行身份验证