gpt4 book ai didi

c# - 如何从 Controller 方法访问 token 数据?

转载 作者:行者123 更新时间:2023-12-03 22:02:34 27 4
gpt4 key购买 nike

如何访问从客户端传递到我的 Controller 方法的 jwt token 数据?我需要 token 中的 userId,以便通过我的数据存储库层中的其他方法调用访问有关用户的更多数据。

我已经能够使用硬编码的 token 字符串来完成它,但不能使用从客户端传递的 token 。我将如何编写此 Controller 方法以将 jwt token 作为输入...或从该 Controller 方法中访问 token 字符串,从而检索我正在查找的数据?

我如何实际将 token 传递到我的 Controller 方法中?

[HttpGet("tokenz")]
public ApplicationUser ParseToken()
{
var stringToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJXaWxsQGdtYWlsLmNvbSIsImp0aSI6IjMxMWM3ZGU5LTcxMDctNGI4MC1hMzViLTA4NjJlYTE1MjZjOCIsImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDUvMDUvaWRlbnRpdHkvY2xhaW1zL25hbWVpZGVudGlmaWVyIjoiYzE3ZTEyNWItYmE0NC00N2MxLTg2NzUtOTc2ZmJlZDRlMTEyIiwiZXhwIjoxNTc2NDU0NDYxLCJpc3MiOiJodHRwczovL2xvY2FsaG9zdDo1NzA5NiIsImF1ZCI6Imh0dHBzOi8vbG9jYWxob3N0OjU3MDk2In0.VtsMgq7fc17M6y8kKHQRw3vO3M7aSrQgF62gw0-mXWg";

var handler = new JwtSecurityTokenHandler();

var tokenS = handler.ReadToken(stringToken) as JwtSecurityToken;

var tokenSubject = tokenS.Subject;

var appUser = _unitofWork.User.GetUserFromSubject(tokenSubject);

return appUser;
}

这没有奏效:

JWT token data access from action/controller layer

或这个:

Retrieving access token in controller

呜……
Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[HttpPost("moretokenz")]
public JwtSecurityToken MoreToken(string strToken)
{
//Where would strToken come from?
return new JwtSecurityTokenHandler().ReadJwtToken(strToken);
}

最佳答案

尝试这个:

[HttpGet]
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public async Task<ActionResult<string>> Get()
{
var token = await HttpContext.GetTokenAsync("access_token");
return token;
}

结果:
enter image description here

关于c# - 如何从 Controller 方法访问 token 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58887151/

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