【问题标题】:Firebase Auth verify JWT ID Tokens without SDK with NodeJSFirebase Auth 在没有 SDK 的情况下使用 NodeJS 验证 JWT ID 令牌
【发布时间】:2019-09-23 01:19:00
【问题描述】:

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

【问题讨论】:

    标签: node.js firebase-authentication jwt


    【解决方案1】:

    按照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'] });
    };
    

    【讨论】:

      猜你喜欢
      • 2021-04-02
      • 2019-05-22
      • 2019-05-10
      • 2017-06-25
      • 2016-01-17
      • 2019-08-09
      • 2018-12-26
      • 2020-09-06
      • 2021-10-28
      相关资源
      最近更新 更多