NodeJS 获取firebase管理员身份验证的令牌

i2loujxw  于 2023-01-30  发布在  Node.js
关注(0)|答案(1)|浏览(230)

这是我的函数,对于firebase函数:

export const hello = onRequest({ cors }, async (request, response) => {
  const token = request.headers.authorization?.split('Bearer ')[1]

  if (token) {
    const tokenData = await getAuth().verifyIdToken(token, true)
    response.send({
      status: 'success',
      data: tokenData.email
    })
  } else {
    response.status(401).send('Unauthorized')
  }
})

我不喜欢我在这里得到代币的方式,但这是我找到的唯一方法:
request.headers.authorization?.split('Bearer ')[1]
有没有更好的方法?比方说,也许admin本身有一些内置的方法?

axr492tv

axr492tv1#

verifyIdToken()只需要JWT标记作为第一个参数。'Bearer '只是指示请求使用Bearer标记系统。如果您只是在API请求中添加标记,则不必解析字符串以获取标记部分。
Admin SDK没有任何内置函数。
或者,可以使用onCall()代替onRequest()来处理身份验证部分,并且可以从context.auth对象读取用户信息。

相关问题