ASP.NETCore中有没有更简单的创建JWT的方式?即“JWT身份验证的最佳实践”?
创始人
2024-09-18 17:00:23
0

是的,有一种更简单的方式来创建JWT并实现身份验证。下面是实现此功能的步骤:

  1. 首先,您需要在ASP.NET Core应用程序中安装Microsoft.AspNetCore.Authentication.JwtBearer包。

  2. 添加此包后,在Startup.cs文件的ConfigureServices方法中添加以下代码以启用JWT身份验证:

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(options =>
    {
        options.TokenValidationParameters = new TokenValidationParameters
        {
            ValidateIssuer = true,
            ValidateAudience = true,
            ValidateLifetime = true,
            ValidateIssuerSigningKey = true,
 
            ValidIssuer = Configuration["Jwt:Issuer"],
            ValidAudience = Configuration["Jwt:Issuer"],
            IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:Key"]))
        };
    });
  1. 接下来,在Configure方法中,添加以下代码以启用身份验证中间件:
app.UseAuthentication();
  1. 接下来,创建一个名为JwtTokenGenerator的类来生成JWT令牌。在该类中,您可以添加以下方法:
public string GenerateJSONWebToken(UserDTO userInfo)
{
    var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:Key"]));
    var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);

    var token = new JwtSecurityToken(Configuration["Jwt:Issuer"],
      Configuration["Jwt:Issuer"],
      null,
      expires: DateTime.Now.AddMinutes(120),
      signingCredentials: credentials);

    return new JwtSecurityTokenHandler().WriteToken(token);
}
  1. 最后,在某个控制器中,您可以使用JwtTokenGenerator来生成JWT令牌,如下所示:
[HttpPost]
[AllowAnonymous]
public IActionResult Authenticate([FromBody] UserDTO login)
{
    IActionResult response = Unauthorized();
    var user = BuildUser(login);

    var tokenString = _jwtTokenGenerator.GenerateJSONWebToken(user);
    response = Ok(new { token =

相关内容

热门资讯

9分钟科普!微扑克wpk透视辅... 您好,wpk透视辅助这款游戏可以开挂的,确实是有挂的,需要了解加微【439369440】很多玩家在这...
透视存在!德扑之星怎么埋牌!竟... 1、透视存在!德扑之星怎么埋牌!竟然是真的有挂((2023已更新))(哔哩哔哩)。2、德扑之星透视辅...
玩家必知教程!雀神训练秘籍(辅... 玩家必知教程!雀神训练秘籍(辅助挂)确实真的有挂(有挂秘笈)-哔哩哔哩;1分钟了解详细教程(微信 1...
3分钟了解!决胜麻将胡牌神器(... 3分钟了解!决胜麻将胡牌神器(辅助挂)原来真的有挂(讲解有挂)-哔哩哔哩;(需添加指定薇757446...
八分钟实锤!cloudpoke... 八分钟实锤!cloudpoker云扑克辅助(辅助挂)辅助透视((2024已更新))(哔哩哔哩)是一款...
实操分享!cloudpoker... 实操分享!cloudpoker云扑克!确实是真的有挂((2025已更新))(哔哩哔哩);科技详细教程...
一分钟了解!微信小程序雀神辅助... 一分钟了解!微信小程序雀神辅助插件免费(辅助挂)竟然是真的有挂(揭秘有挂)-哔哩哔哩,亲,有的,ai...
辅助透视!皮皮跑胡子真的有挂吗... WePoker透视辅助版本稳定性对比与推荐‌:辅助透视!皮皮跑胡子真的有挂吗(辅助挂)其实真的有挂(...
三分钟科普!wpk德州透视辅助... 1、三分钟科普!wpk德州透视辅助(透视)软件透明挂((2021已更新))(哔哩哔哩)。2、德州透视...
热点推荐!wpk ai辅助!其... 热点推荐!wpk ai辅助!其实真的有挂((2020已更新))(哔哩哔哩);小薇(透视辅助)致您一封...