Firebase Auth - 设置会话过期

Ker*_*mit 4 javascript firebase-authentication

如何设置 Firebase 身份验证会话的会话过期时间?默认情况下,会话永不过期。

我希望会话在 8 小时不活动后过期。

我已阅读文档,但不知道如何设置会话过期。

我用于登录用户并在登录和注销时执行任务的代码

firebase.auth().signInWithEmailAndPassword(data.email, data.password)

firebase.auth().onAuthStateChanged((user) => {
  if (user) {
    //Signed in
  }else{
    //Signed out
  }
}
Run Code Online (Sandbox Code Playgroud)

感谢所有回复!我已经尝试过,但似乎无法让 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
Run Code Online (Sandbox Code Playgroud)

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)
    })
  })
}
Run Code Online (Sandbox Code Playgroud)

我收到错误

错误:函数执行失败。详细信息:无法读取未定义的属性“auth”

Dou*_*son 5

您链接的文档表明您可以使用 Firebase Admin SDK撤销用户的刷新令牌以终止其会话。此代码必须在您控制的后端上运行,这意味着您无法在客户端应用程序中执行此操作。无论您选择什么定义,后端都需要知道用户何时变得“不活动”。将这一切连接起来并不简单,但却是可能的。