如何将数据附加到加密的 JWT 令牌 (JWE)?
How can I append data to an encrypted JWT token (JWE)?
我有以下情况:使用 Node.js REST API 的 Angular 4 Web 应用程序,它使用公司范围的 REST 身份验证服务。
此 REST 身份验证服务 return 是一个我可以使用 node-jose 库解密的 JWE 令牌,然后我的 Node.js API 检查用户的角色以确定他是否被允许使用网络应用程序。
根据用户角色,Angular 网络应用程序可能 allow/deny 访问某些路由,因此我使用 Guard routes
。
所以,我的问题是:是否可以将用户角色附加到原始 JWE 令牌,并将其 return 附加到 Angular 网络应用程序,同时仍然保持其有效?
令牌和return对网络应用程序的请求就是这样:
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);
});
不,如果有可能任何人都可以生成有效的令牌。 JWT 使用密钥签名,对内容的任何更改都会使签名无效,服务器必须拒绝令牌。
要创建有效令牌,您的应用程序需要密钥,并且由于您在 Web 应用程序中工作,密钥在客户端不受保护。您需要向服务器请求新令牌
我有以下情况:使用 Node.js REST API 的 Angular 4 Web 应用程序,它使用公司范围的 REST 身份验证服务。
此 REST 身份验证服务 return 是一个我可以使用 node-jose 库解密的 JWE 令牌,然后我的 Node.js API 检查用户的角色以确定他是否被允许使用网络应用程序。
根据用户角色,Angular 网络应用程序可能 allow/deny 访问某些路由,因此我使用 Guard routes
。
所以,我的问题是:是否可以将用户角色附加到原始 JWE 令牌,并将其 return 附加到 Angular 网络应用程序,同时仍然保持其有效?
令牌和return对网络应用程序的请求就是这样:
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);
});
不,如果有可能任何人都可以生成有效的令牌。 JWT 使用密钥签名,对内容的任何更改都会使签名无效,服务器必须拒绝令牌。
要创建有效令牌,您的应用程序需要密钥,并且由于您在 Web 应用程序中工作,密钥在客户端不受保护。您需要向服务器请求新令牌