如何使用 express-Jwt 解码来自 idToken 的信息?

Posted

技术标签:

【中文标题】如何使用 express-Jwt 解码来自 idToken 的信息?【英文标题】:How would I decode info from idToken using express-Jwt? 【发布时间】:2021-08-25 20:59:19 【问题描述】:

我的应用程序使用 Google 的身份验证和浏览器将 idToken 发送到我的 API 服务器。我使用checkIfAuthenticated 来验证 idToken,一旦验证成功,就需要从中解码/提取信息。但我不知道如何解码/提取。

这是验证和路由的方式:

const jwksRsa = require('jwks-rsa');
const expressJwt = require('express-jwt');

const checkIfAuthenticated = () =>

    var googleUri = "https://www.googleapis.com/oauth2/v3/certs";
    expressJwt(
        secret: jwksRsa.expressJwtSecret(
            cache: true,
            rateLimit: true,
            jwksUri: googleUri
        ),
        algorithms: ['RS256']
    );
    // try to decode but gave me a definition of ƒ (req, res, next)...
    var data = expressJwt(secret: googleUri, requestProperty: 'auth', algorithms: ['RS256'] ); 


module.exports = app =>

    app.post("/needvalidation", checkIfAuthenticated, ... );
;

【问题讨论】:

【参考方案1】:

发现最好的方法是使用谷歌的包google-auth-library

【讨论】:

以上是关于如何使用 express-Jwt 解码来自 idToken 的信息?的主要内容,如果未能解决你的问题,请参考以下文章

如何查看存储在 JWT 中的数据?使用 auth0 和 express-jwt

express-jwt 将用户对象设置为 req.user._doc 而不仅仅是 req.user?

使用 express-jwt,我可以返回 401 以外的其他状态码吗?

解码令牌不会提供用户个人资料

如何使用 angular2 设置 express-jwt 而不阻塞 node_modules?

如何在 express-JWT 中获取授权令牌?