ASP.NETCore使用JWT进行登录
创始人
2024-09-18 07:00:50
0

在ASP.NET Core中,使用JWT进行认证和授权是一种流行的方式。JWT是一种安全且可扩展的认证方法,可以在不需要存储用户数据的情况下实现用户身份验证。

以下是使用ASP.NET Core进行JWT登录的步骤:

  1. 使用NuGet包安装Microsoft.AspNetCore.Authentication.JwtBearer。

  2. 在 ConfigureServices 方法中添加以下代码:

    services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.RequireHttpsMetadata = false; options.SaveToken = true; options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(Configuration.GetSection("AuthSettings:Key").Value)), ValidateIssuer = false, ValidateAudience = false }; });

  3. 在ApplicationStartUp中启用JWT:

    app.UseAuthentication();

  4. 编写登录控制器:

    [Route("api/[controller]")]
    

    [ApiController] public class UserController : ControllerBase { private readonly UserManager _userManager; private readonly SignInManager _signInManager; private readonly IConfiguration _configuration;

     public UserController(UserManager userManager, SignInManager signInManager, IConfiguration configuration)
     {
         _userManager = userManager;
         _signInManager = signInManager;
         _configuration = configuration;
     }
    
     [HttpPost]
     [Route("Login")]
     public async Task Login([FromBody] LoginViewModel model)
     {
         var user = await _userManager.FindByNameAsync(model.Email);
         if (user != null && await _userManager.CheckPasswordAsync(user, model.Password))
         {
           //创建claims
             var claims = new[]
             {
                 new Claim(JwtRegisteredClaimNames.Sub, user.UserName),
                 new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                 new Claim(JwtRegisteredClaimNames.Email, user.Email)
             };
    
             var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["AuthSettings:Key"]));
    
             var token = new JwtSecurityToken(
                 issuer: _configuration["AuthSettings:Issuer"],
    

相关内容

热门资讯

关于开挂!混沌休闲有没有挂(透... wepoker私人局透视插件是一款专注玩家量身打造的游戏记牌类型软件,在wepoker私人局透视插件...
本然有辅助"约局吧脚... 本然有辅助"约局吧脚本有用吗"开挂(透视)辅助脚本(玩家教程了解有挂);无需打开直接搜索微信(136...
细节辅助!pokemmo脚本辅... 大家好,今天小编来为大家解答wepoker辅助软件价格这个问题咨询软件客服可以免费测试直接加微信(1...
往昔有辅助"途游游戏... 途游游戏辅助软件开挂教程视频分享装挂详细步骤在当今的网络游戏中,途游游戏辅助软件作为一种经典的娱乐方...
科技辅助!旺旺福建游戏小程序辅... 科技辅助!旺旺福建游戏小程序辅助(透视)大菠萝免费辅助器(微扑克教程开挂辅助透视)旺旺福建游戏小程序...
一向有开挂"aapo... 【亲,aapoker真的假的 这款游戏可以开挂的,确实是有挂的,很多玩家在这款aapoker真的假的...
教会开挂!德州局脚本(透视)w... wepoker私人局怎么玩开挂教程视频分享装挂详细步骤在当今的网络游戏中,wepoker私人局怎么玩...
原本有辅助"陕麻圈辅... 原本有辅助"陕麻圈辅助器怎么安装"开挂(透视)辅助安装(AI教程有挂详细) >>您好:软件加薇136...
必看辅助!方片十三张脚本(透视... 必看辅助!方片十三张脚本(透视)哈糖大菠萝开挂(曝光教程开挂辅助透视);无需打开直接搜索加(薇:13...
本然有开挂"广东雀神... 广东雀神智能插件安卓包 无需打开直接搜索微信:136704302本司针对手游进行,选择我们的四大理由...