ASP.NETCore3.1MVCJWTLogin返回401错误
创始人
2024-09-17 09:30:28
0
  1. 确认JWT Token是否正确生成并在HTTP请求的头部中正确传递。

  2. 检查登录控制器中的代码是否正确处理了用户认证。以下是示例代码:

[HttpPost]
[Route("login")]
public async Task Login([FromBody] LoginViewModel model)
{
    if (!ModelState.IsValid)
    {
        return BadRequest();
    }

    var user = await _userManager.FindByEmailAsync(model.Email);
    if (user == null)
    {
        return BadRequest();
    }

    if (!await _userManager.CheckPasswordAsync(user, model.Password))
    {
        return BadRequest();
    }

    var tokenString = GenerateJWTToken(user);

    return Ok(new { token = tokenString });
}

private string GenerateJWTToken(ApplicationUser user)
{
    var claims = new List
    {
        new Claim(JwtRegisteredClaimNames.Sub, user.UserName),
        new Claim(JwtRegisteredClaimNames.Email, user.Email),
        new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
    };

    var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["Jwt:Key"]));
    var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

    var token = new JwtSecurityToken(
        _configuration["Jwt:Issuer"],
        _configuration["Jwt:Issuer"],
        claims,
        expires: DateTime.Now.AddMinutes(30),
        signingCredentials: creds);

    return new JwtSecurityTokenHandler().WriteToken(token);
}
  1. 检查Authorization Middleware是否被正确添加。以下是示例代码:
public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(options =>
    {
        options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
        options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
    })
    .AddJwtBearer(options =>
    {
        options.RequireHttpsMetadata = false;
        options.SaveToken = true;
        options.TokenValidationParameters = new TokenValidationParameters
        {
            ValidateIssuerSigningKey = true,
            IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:Key"])),
            ValidateIssuer = true,
            ValidIssuer = Configuration["Jwt:Issuer"],
            ValidateAud

相关内容

热门资讯

传递经验!九酷众游辅助,hhp... 传递经验!九酷众游辅助,hhpoker德州真的假的,技巧教程(有挂解惑);传递经验!九酷众游辅助,h...
技术分享!新道游游戏辅助器安装... 技术分享!新道游游戏辅助器安装包,德普之星app安卓版破解版,透视教程(有挂工具)是一款可以让一直输...
揭秘一下!互游辅助,hhpok... 揭秘一下!互游辅助,hhpoker万能辅助器,系统教程(有挂方式);1、很好的互游辅助工具软件,可以...
终于知道!多乐跑得私人房间插件... 终于知道!多乐跑得私人房间插件,wepoker私人局透视教程,教你攻略(有挂解惑)是一款可以让一直输...
科普分享!微乐河南麻将辅助io... 科普分享!微乐河南麻将辅助ios,wepoker到底有没有透视,细节方法(有挂秘诀);1、很好的微乐...
重大通报!四川熊猫辅助,aap... 重大通报!四川熊猫辅助,aapoker插件,2025版教程(有挂详细);小薇(透视辅助)致您一封信;...
必备教程!点我休闲辅助器,we... 必备教程!点我休闲辅助器,wepoker轻量版辅助,黑科技教程(有人有挂)是一款可以让一直输的玩家,...
我来向大家传授!甘肃白银麻将辅... 您好,甘肃白银麻将辅助软件这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩...
一分钟秒懂!雀神麻将辅助透视,... 一分钟秒懂!雀神麻将辅助透视,wepoker破解游戏盒子,力荐教程(有挂透明挂);雀神麻将辅助透视是...
最新技巧!旺旺填大坑透视挂,w... 最新技巧!旺旺填大坑透视挂,wpk刷入池率脚本,2025新版技巧(有挂猫腻);全局旺旺填大坑透视挂透...