gpt4 book ai didi

c# - 如何在 Angular 中解码 JWE token

转载 作者:行者123 更新时间:2023-12-03 14:21:09 27 4
gpt4 key购买 nike

我有这个问题,我通过这种方式使用 EncryptingCredentials 在 .net 核心中创建了一个 JWE:

var key = Encoding.ASCII.GetBytes(Configuration["Core:JwtSecret"]);
var encryptionkey = Encoding.ASCII.GetBytes(Configuration["Core:JwtEncrype"]);

var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = subject,
Expires = DateTime.UtcNow.AddDays(Convert.ToInt32(Host.Config["Core:JwtDays"])),
SigningCredentials =
new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature),
EncryptingCredentials =
new EncryptingCredentials(new SymmetricSecurityKey(encryptionkey), SecurityAlgorithms.Aes128KW, SecurityAlgorithms.Aes128CbcHmacSha256)
};
var token = tokenHandler.CreateToken(tokenDescriptor);
user.Token = tokenHandler.WriteToken(token);
如何使用 Angular 读取 token 的数据?

最佳答案

您可以实现一个 Web API 端点,该端点将接受您的 JWE token 作为输入参数,对其进行解密和验证并将其有效负载(内容)作为 JSON 返回。然后,您可以轻松地在 Angular 应用程序中使用 JSON。在这种情况下,您可以在服务器端使用您的签名和加密 key ,并将它们保密。
此外,您可以考虑使用 JWT 代替 JWE。无论如何,您都可以在公共(public)客户端( Angular 应用程序)中解码 token 。这类似于 OpenID Connect 协议(protocol)的 user_info 端点。如果您在服务器端(私有(private)客户端)解密 token ,加密将很有用。
在 Angular 应用程序中使用签名和加密 key 会将它们公开。
或者,您可以引入另一个未加密的 JWT token 并将其返回到您的 Angular 应用程序,而不是您的 JWE token 或除了您的 JWE token 之外。它将类似于 OpenID Connect 协议(protocol)中的 id_token。

关于c# - 如何在 Angular 中解码 JWE token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65600407/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com