我想知道如何使用 firebase 保持身份验证状态。我正在做的是尝试设置持久状态,我这样做:login.addEventListener('click', function (e) { e.preventDefault(); var email = emailInput.value; var password = passwordInput.value; firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL) .then(function() { auth.signInWithEmailAndPassword(email, password) .then(function (user) { }) .catch(function (error) { alert(error); }); })});问题是,当我刷新网络应用程序时,会话似乎不会持续。它将用户重定向回登录屏幕,这根本不是所需的输出。所需的输出是保存用户的会话,并且用户能够浏览应用程序而不会出现被迫再次登录的问题。我正在关注 firebase 文档:https://firebase.google.com/docs/auth/web/auth-state-persistence
1 回答
当年话下
TA贡献1890条经验 获得超9个赞
如果您想知道用户之前在新页面加载时是否登录过您的网站,您应该使用身份验证状态观察器来接收回调,该回调会在首次知道用户登录时通知您。它不会触发页面加载时立即 - 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
// ...
}
});
不要用于firebase.auth().currentUser
确定用户之前是否已登录。页面加载时它最初始终为空。
添加回答
举报
0/150
提交
取消