gpt4 book ai didi

c# - 我可以在代码中使用 header 上发送的 JWT token 吗?

转载 作者:行者123 更新时间:2023-11-30 22:57:03 29 4
gpt4 key购买 nike

所以我环顾四周,我想知道我是否可以以某种方式在我的代码中使用我在我的授权请求 header 上发送的 jwt token ,或者一旦请求到达 Web API 端点它就会丢失?

我想使用 token 来提取某些信息,而不会将 token 作为我 body 的一部分发送。

我尝试在我的 web api 项目中使用 jwt 库,但没有用

我想使用 token 来提取某些信息,而不会将 token 作为我 body 的一部分发送。例如我的电子邮件。

最佳答案

您应该能够阅读 HttpContext 附带的原则中的声明

var identity = HttpContext.User.Identity as ClaimsIdentity;
if (identity != null)
{
return identity.FindFirst("email").Value;
}

否则,您可以使用 JwtSecurityTokenHandler 来验证 token ,获取原则,然后改为从该原则读取声明:

JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler();
var principle = tokenHandler.ValidateToken(token, .... );
return principal.Claims.SingleOrDefault(c => c.Type == "email").Value;

您可以从 HttpRequestMessage(请求)的 header 中获取不记名 token 。

IEnumerable<string> headers;
request.Headers.TryGetValues("Authorization", out headers);
return headers.ElementAt(0); // Bearer Token

关于c# - 我可以在代码中使用 header 上发送的 JWT token 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53876463/

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