所以我环顾四周,我想知道是否可以以某种方式在代码中使用我在授权请求 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/