Overview
我正在 Quasar/Vue.js 和 Firebase 中构建一个需要对用户进行身份验证的 Web 应用程序。
我想要实现的目标
一个非常常见的功能 - 即使用户关闭浏览器/选项卡后仍保持登录状态。
可能的解决方案
我知道我可以使用本地存储 or cookies设置用户身份验证状态。但是,我想允许 Firebase 身份验证为我执行此操作(如果它可以执行此操作)。
我检查了这方面的文档 -https://firebase.google.com/docs/auth/web/auth-state-persistence它们很好,只是我无法弄清楚将其中提到的这段代码放在哪里:
firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL)
.then(function() {
// New sign-in will be persisted with session persistence.
return firebase.auth().signInWithEmailAndPassword(email, password);
})
.catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
});
我不确定将其放置在以下位置的何处:
- 与
onAuthStatechanged
听众?
- 在 App.vue(根 Vue)实例中?
- 别的地方?
如果有人能提供帮助,我会很高兴。谢谢。
只要你有,我都会这么做firebase.initializeApp()
. Eg
firebase.initializeApp({
// config goes here
});
export const auth = firebase.auth()
auth.setPersistence(firebase.auth.Auth.Persistence.LOCAL)
注意LOCAL
已经是网络应用程序中的默认设置。
你真的不需要等待那个承诺。来自docs
这将返回一个承诺,一旦状态完成从一种类型的存储复制到另一种类型的存储,该承诺将得到解决。更改持久性后调用登录方法将等待持久性更改完成在将其应用到新的身份验证状态之前。
其模块化版本(v9+)如下所示......
import { initializeApp } from "firebase/app";
import {
browserLocalPersistence,
getAuth,
setPersistence
} from "firebase/auth";
const app = initializeApp({
// config goes here
})
export const auth = getAuth(app);
setPersistence(auth, browserLocalPersistence)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)