如何为Firebase身份验证会话设置会话到期时间?默认情况下,会话永不过期。
我希望会话在闲置8个小时后过期。
我已经阅读了文档,但无法弄清楚如何设置会话到期时间。
我的代码,用于登录用户并在登录和注销时执行任务
firebase.auth().signInWithEmailAndPassword(data.email, data.password)
firebase.auth().onAuthStateChanged((user) => {
if (user) {
//Signed in
}else{
//Signed out
}
}
感谢您的所有回复!我已经尝试过,但似乎无法让Firebase-admin工作。
Firebase-db.js
const admin = require('firebase-admin')
const databaseConnection = {
serviceAccountFile: './serviceAccount.json',
databaseURL: 'https://myProject.firebaseio.com/'
}
const serviceAccount = require(databaseConnection.serviceAccountFile)
const app = admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: databaseConnection.databaseURL
}, 'test')
const database = admin.database(app)
module.exports = database
sessionSignout.js
const functions = require('firebase-functions')
const database = require('../../firebase-db')
const admin = database.admin
exports.sessionSignout = functions
.region('europe-west1')
.pubsub
.schedule('*/15 * * * *')
.timeZone('Europe/Stockholm')
.onRun(async (event) => {
database.ref(`users`)
.once('value', (usersSnapshots) => {
usersSnapshots.forEach((snapshot) => {
const uid = snapshot.key
admin.auth().revokeRefreshTokens(uid)
})
})
}
我得到错误
错误:函数执行失败。详细信息:无法读取未定义的属性“ auth”
您链接的文档说,您可以使用Firebase Admin SDK撤消用户的刷新令牌,以终止其会话。此代码必须在您控制的后端上运行,这意味着您将无法在客户端应用程序中执行此操作。无论您选择哪种定义,后端都需要知道用户何时变为“非活动状态”。将所有这些连接起来并非易事,但有可能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句