Firebase Auth通过NodeJS验证不带SDK的JWT ID令牌

时间:2019-05-04 23:31:52

标签: node.js firebase-authentication jwt

使用NodeJS,如何在没有Firebase Admin SDK的情况下验证Firebase Auth提供的JWT(idToken)?

1 个答案:

答案 0 :(得分:0)

the doc on how to verify ID Tokens之后,可以使用任何JWT库并从Google API网站获取公共密钥。

import jwt from 'jsonwebtoken';
import request from 'request';
import { promisify } from 'util';
const rp = promisify(request);

const response = await rp('https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com');
const publicKeys = JSON.parse(response.body);

const verifyIdToken = idToken => {
    const header64 = idToken.split('.')[0];
    const header = JSON.parse(Buffer.from(header64, 'base64').toString('ascii'));
    return jwt.verify(token, publicKeys[header.kid], { algorithms: ['RS256'] });
};
相关问题