开源DDD设计模式框架YMNNetCoreFrameWork第二篇-增加ASp.net core Identity身份认证,JWT身份认证
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了开源DDD设计模式框架YMNNetCoreFrameWork第二篇-增加ASp.net core Identity身份认证,JWT身份认证,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2498字,纯文字阅读大概需要4分钟。
内容图文
1、框架增加Identity注册功能
2、框架增加identity登录以后获取JWTtoken
3、请求接口通过token请求,增加验证特性
源代码地址:https://github.com/topgunymn/YMNNetCoreFrameWork
JWTtoken生成代码:
private string CreateAccessToken(IEnumerable<Claim> claims, TimeSpan? expiration = null) { var now = DateTime.UtcNow; SymmetricSecurityKey symmetricSecurityKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(_configuration.GetSection("Authentication:JwtBearer")["SecurityKey"].ToString())); var jwtSecurityToken = new JwtSecurityToken( issuer: _configuration.GetSection("Authentication:JwtBearer")["Issuer"].ToString(), audience: _configuration.GetSection("Authentication:JwtBearer")["Audience"].ToString(), claims: claims, notBefore: now, expires:now.AddMinutes(30), // expires: now.Add(expiration ?? _configuration.Expiration), SecurityKey signingCredentials: new SigningCredentials(symmetricSecurityKey, SecurityAlgorithms.HmacSha256) ); return new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken); }
JWT认证配置代码:
services.AddIdentity<YMNUser, Role>() .AddEntityFrameworkStores<YMNContext>() ; //services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) // //添加jwt验证: // .AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, options => // { services.AddAuthentication(options => { //identity.application var a = options.DefaultAuthenticateScheme; var b = options.DefaultChallengeScheme; options.DefaultAuthenticateScheme = "JwtBearer"; options.DefaultChallengeScheme = "JwtBearer"; }).AddJwtBearer("JwtBearer", options => { options.TokenValidationParameters = new TokenValidationParameters { ValidateLifetime = true,//是否验证失效时间 ClockSkew = TimeSpan.FromSeconds(30), ValidateAudience = true,//是否验证Audience //ValidAudience = Const.GetValidudience(),//Audience //这里采用动态验证的方式,在重新登陆时,刷新token,旧token就强制失效了 AudienceValidator = (m, n, z) => { return m != null && m.FirstOrDefault().Equals(Audience); }, ValidateIssuer = true,//是否验证Issuer ValidIssuer = Issuer,//Issuer,这两项和前面签发jwt的设置一致 ValidateIssuerSigningKey = true,//是否验证SecurityKey IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(key))//拿到SecurityKey }; //options.Events = new JwtBearerEvents //{ // OnAuthenticationFailed = context => // { // //Token expired // if (context.Exception.GetType() == typeof(SecurityTokenExpiredException)) // { // context.Response.Headers.Add("Token-Expired", "true"); // } // return Task.CompletedTask; // } //}; });
内容总结
以上是互联网集市为您收集整理的开源DDD设计模式框架YMNNetCoreFrameWork第二篇-增加ASp.net core Identity身份认证,JWT身份认证全部内容,希望文章能够帮你解决开源DDD设计模式框架YMNNetCoreFrameWork第二篇-增加ASp.net core Identity身份认证,JWT身份认证所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。