我已经使用 Firebase Auth 为多个提供商实现了登录方法,如下所示:
firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL).then(() => {
let provider = new firebase.auth.GoogleAuthProvider(); // + facebook, gitHub
provider.addScope('profile');
provider.addScope('email');
firebase.auth().signInWithPopup(provider).then(result => {
// app logic here
然而,这段代码给了我 60 分钟的持续会话,我想学习如何自动更新当前用户会话而不必每小时登录一次。
我还使用此代码“收听”当前用户会话状态。
firebase.auth().onAuthStateChanged(user => if (!user) //goto LoginPage
但它本身并不“倾听”,它仅在我尝试导航或更新页面时才起作用。所以我不知道如何使用 Firebase 方法在确切的时间量(例如最多 15 分钟)内限制访问。
文档说有一种getIdToken
方法,但我无法确定在哪里使用此代码。它应该在到期前每 60 分钟调用一次还是应该在登录时设置?请给出一些提示或任何涵盖这种情况的教程。
编辑:
此外,在一段时间不活动(我认为不到 1 小时)后,我在控制台中收到了此代码:
auth.esm.js:121 POST https://securetoken.googleapis.com/v1/token?key=AIza... 403