有人可以帮助我将jwt令牌集成到web.api内核中吗?因此,我尝试通过IdentityServer 4生成jwt令牌。下面给出了它的外观:
[HttpPost]
public async Task<IActionResult> Index(LoginViewModel loginViewModel)
{
var user = await _userManager.FindByEmailAsync(loginViewModel.Email);
if(user != null)
{
var isCredosValid = await _signInManager.PasswordSignInAsync(loginViewModel.Email, loginViewModel.Password, loginViewModel.RememberMe, false);
if (isCredosValid.Succeeded)
{
var disco = await DiscoveryClient.GetAsync("https://localhost:44351");
var tokenClient = new TokenClient(disco.TokenEndpoint, _identityServerConfig.ClientId, _identityServerConfig.Secret);
var tokenResponse = await tokenClient.RequestResourceOwnerPasswordAsync(
loginViewModel.Email, loginViewModel.Password,_identityServerConfig.AllowedScope);
return Json(tokenResponse.Json);
}
}
return BadRequest();
}
此方法没问题,但是一旦我尝试访问其他具有角色限制的方法,例如Authorize(Roles =“ User”),Api允许我未经授权调用方法,因此它似乎不起作用。 我是否应该以某种方式验证手动发送请求标头中的令牌以及默认的asp.net用户身份具有检查令牌的内置支持?