【发布时间】:2020-07-17 08:15:17
【问题描述】:
我在我的 asp.net 核心应用程序中创建了一个基于令牌的身份验证。当我使用正确的登录模型发布时,它给了我令牌。现在我想知道如何获取为其生成此令牌的用户的信息。 这是创建令牌的代码。如果我能提供任何其他信息,请告诉我。
if (ModelState.IsValid)
{
var user = await _userManager.FindByNameAsync(model.UserName);
if (user != null)
{
var result = await _signInManager.CheckPasswordSignInAsync(user, model.Password, false);
if (result.Succeeded)
{
var claims = new List<Claim>()
{
new Claim(JwtRegisteredClaimNames.Sub,user.Email),
new Claim(JwtRegisteredClaimNames.Jti,Guid.NewGuid().ToString()),
new Claim(JwtRegisteredClaimNames.UniqueName,user.UserName)
};
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Tokens:key"]));
var cred = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
var token = new JwtSecurityToken(
_config["Tokens:Issuer"],
_config["Tokens:Audience"],
claims,
expires: DateTime.UtcNow.AddMinutes(20),
signingCredentials: cred );
var results = new
{
token = new JwtSecurityTokenHandler().WriteToken(token),
expiration = token.ValidTo
};
return Created("", results);
}
}
}
return BadRequest();
【问题讨论】:
标签: asp.net asp.net-core jwt