.NET Core集成JWT授权验证


添加Nuget:

JWT Nuget引用包名:

Microsoft.AspNetCore.Authentication.JwtBearer

注意版本和.net Core版本的兼容

在appsettings.json中添加JWT的配置参数

JavaScript 全选
"Jwt": {
    "Secret": "your-256-bit-secret",
    "Iss": "https://localhost:50000",
    "Aud": "api"
  }

在Startup.cs中的ConfigureServices方法中添加JWT的授权认证

C# 全选
#region JWT配置
var jwtConfig = Configuration.GetSection("Jwt");
//生成密钥
var symmetricKeyAsBase64 = jwtConfig.GetValue<string>("Secret");
var keyByteArray = Encoding.ASCII.GetBytes(symmetricKeyAsBase64);
var signingKey = new SymmetricSecurityKey(keyByteArray);
//认证参数
services.AddAuthentication("Bearer")
	.AddJwtBearer(o =>
	{
		o.TokenValidationParameters = new TokenValidationParameters
		{
			ValidateIssuerSigningKey = true,//是否验证签名,不验证的画可以篡改数据,不安全
			IssuerSigningKey = signingKey,//解密的密钥
			ValidateIssuer = true,//是否验证发行人,就是验证载荷中的Iss是否对应ValidIssuer参数
			ValidIssuer = jwtConfig.GetValue<string>("Iss"),//发行人
			ValidateAudience = true,//是否验证订阅人,就是验证载荷中的Aud是否对应ValidAudience参数
			ValidAudience = jwtConfig.GetValue<string>("Aud"),//订阅人
			ValidateLifetime = true,//是否验证过期时间,过期了就拒绝访问
			ClockSkew = TimeSpan.Zero,//这个是缓冲过期时间,也就是说,即使我们配置了过期时间,这里也要考虑进去,过期时间+缓冲,默认好像是7分钟,你可以直接设置为0
			RequireExpirationTime = true,
		};
	});
#endregion

在Startup.cs中的Configure方法中添加 app.UseAuthentication() 和 app.UseAuthorization() 注意位置需要放置的位置:

C# 全选
app.UseAuthentication();
app.UseAuthorization();

.NET Core集成JWT授权验证

生成JWT令牌

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
张国生
上一篇:element-ui el-table不显示合计行的解决办法
下一篇:FastReport完全破解--asp.net使用签名问题
评论列表

发表评论

评论内容
昵称:
关联文章

.NET Core集成JWT授权验证
.NET Core中的鉴权授权正确方式(.NET5)
使用.NET 6开发TodoList应用(24)——实现基于JWT的Identity功能
.NET Core集成Quarz相关
asp.net core 支持多种身份认证方式
[.Net] .NET Reactor加授权方法 .NET Reactor自定义注册机和获取机器码
使用.NET 6开发TodoList应用(11)——使用FluentValidation和MediatR实现接口请求验证
.NET Core ResponseCache 浏览器缓存
ASP.NET Core官网教程,资料查找
ASP.NET Core开发者学习路线图
【推荐】Razor文件编译 ASP.NET Core
ASP.NET Core 使用 LESS
.NET5 ASP.NET Core 添加API限流
IVIEW FORM验证 验证数字
.NET Core 项目windows server中部署
C# ASP.NET Core开发学生信息管理系统(一)
ABP VNext框架中Winform终端的开发和客户端授权信息的处理
C# ASP.NET Core开发学生信息管理系统(三)
C# ASP.NET Core开发学生信息管理系统(二)
.NET Core 项目 DbProviderFactories.GetFactoryClasses()返回空

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码