用于服务器身份验证的Firebase刷新ID令牌

时间:2018-11-09 09:58:26

标签: firebase authentication firebase-authentication

我有一个使用Firebase的项目,其中我使用Firebase ID令牌来验证后端的用户。 实际上,在客户端上,当用户登录时,我使用getIdToken(true)并将其附加到我的请求标头中。 在服务器上,对于每个请求,我使用verifyIdToken来检查用户是否登录并且有效。

问题是令牌在一段时间后失效,后端无法验证用户。

我的问题是:如何获得这项工作?

我考虑使用客户端的请求拦截器来获取每个请求的ID令牌,但我不知道这是否是一种好习惯,是否也必须使用admin.auth().revokeRefreshTokens(userId)使其他令牌无效。 预先感谢。

客户

axios.interceptors.request.use(function (config) {
  if (!firebase.auth().currentUser) {
    return config
  }
  return firebase.auth().currentUser.getIdToken(true).then(token => {
    config.headers.Authentication = token
    return config
  })
}, function (error) {
  // Do something with request error
  return Promise.reject(error)
})

服务器

let decodedToken = await admin.auth().verifyIdToken(token);
let userId = decodedToken.uid;

0 个答案:

没有答案