【问题标题】:How can I append data to an encrypted JWT token (JWE)?如何将数据附加到加密的 JWT 令牌 (JWE)?
【发布时间】:2018-04-11 10:25:21
【问题描述】:

我有以下场景:一个使用 Node.js REST API 的 Angular 4 Web 应用程序,它使用公司范围的 REST 身份验证服务。

此 REST 身份验证服务返回一个 JWE 令牌,我可以使用 node-jose 库对其进行解密,然后我的 Node.js API 检查用户的角色以确定是否允许他使用网络应用程序。

根据用户角色,Angular Web 应用可能允许/拒绝对某些路由的访问,因此我使用的是Guard routes

所以,我的问题是:是否可以将用户角色附加到原始 JWE 令牌并将其返回到 Angular Web 应用程序同时仍然保持有效?

token的请求并返回web app就是这样:

request.post('http://security.companyname.com/service/security/auth')
            .send({ username: req.body.username, password: req.body.password })
            .set('Content-Type', 'application/json')
            .then(authResult => {
                    res.json({
                        status: true,
                        token: authResult.text,
                        error: null
                    });
            })
            .catch(err => {
                res.json({ status: false, token: null, error: err.message });
                console.log(err.message);
            });

【问题讨论】:

  • 我不认为这是可能的,因为后端会拒绝该令牌,如果您能够从前端对其进行修改,它只会违背安全的目的

标签: node.js angular jwt jwe


【解决方案1】:

不,如果有可能任何人都可以生成有效令牌。 JWT 使用密钥进行签名,对内容的任何更改都会使签名无效,并且服务器必须拒绝该令牌。

要创建有效令牌,您的应用程序需要密钥,并且由于您在 Web 应用程序中工作,因此密钥在客户端将不受保护。您需要向服务器请求新令牌

【讨论】:

    猜你喜欢
    • 2019-07-25
    • 2020-07-15
    • 2013-08-15
    • 2017-07-17
    • 2022-11-28
    • 2021-09-27
    • 2021-01-17
    • 2023-01-14
    • 1970-01-01
    相关资源
    最近更新 更多