【发布时间】:2019-09-23 01:19:00
【问题描述】:
使用 NodeJS,如何在没有 Firebase Admin SDK 的情况下验证 Firebase Auth 提供的 JWT(idToken)?
【问题讨论】:
标签: node.js firebase-authentication jwt
使用 NodeJS,如何在没有 Firebase Admin SDK 的情况下验证 Firebase Auth 提供的 JWT(idToken)?
【问题讨论】:
标签: node.js firebase-authentication jwt
按照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'] });
};
【讨论】: