.NET CORE JWT
nuget添加包:Microsoft.AspNetCore.Authentication.JwtBearer
Startup.cs
ConfigureServicesservices.Configure<TokenManagement>(Configuration.GetSection("tokenManagement"));var token = Configuration.GetSection("tokenManagement").Get<TokenManagement>();services.AddAuthentication(x =>{x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;}).AddJwtBearer(x =>{x.RequireHttpsMetadata = false;x.SaveToken = true;x.TokenValidationParameters = new TokenValidationParameters{ValidateIssuerSigningKey = true,IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(token.Secret)),ValidIssuer = token.Issuer,ValidAudience = token.Audience,ValidateIssuer = false,ValidateAudience = false};});
Configureapp.UseStaticFiles();app.UseAuthentication(); //添加的权限 上下都放在这是为了确定语句的位置app.UseRouting();app.UseAuthorization();
appsettings.json
"tokenManagement": {"secret": "123456123456123456","issuer": "webapi.cn","audience": "WebApi","accessExpiration": 30,"refreshExpiration": 60}
Model
public class TokenManagement{[JsonProperty("secret")]public string Secret { get; set; }[JsonProperty("issuer")]public string Issuer { get; set; }[JsonProperty("audience")]public string Audience { get; set; }[JsonProperty("accessExpiration")]public int AccessExpiration { get; set; }[JsonProperty("refreshExpiration")]public int RefreshExpiration { get; set; }}
获取token
string token = string.Empty;var claims = new[]{new Claim(ClaimTypes.Name,userName),new Claim("haha","sb") //随意添加};var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_tokenManagement.Secret));var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);var jwtToken = new JwtSecurityToken(_tokenManagement.Issuer, _tokenManagement.Audience, claims, expires: DateTime.Now.AddMinutes(_tokenManagement.AccessExpiration), signingCredentials: credentials);token = new JwtSecurityTokenHandler().WriteToken(jwtToken);
得到token中字段
User.FindFirst("haha").Value;User.Identity.Name;
前端ajax
beforeSend: function (xhr) {if (token !== null) {xhr.setRequestHeader('Authorization', 'Bearer ' + token);}},
只能这样的header头格式 才能直接使用User对象来获取信息
.NET CORE JWT相关推荐
- .NET Core + JWT令牌认证 + Vue.js 通用动态权限(RBAC)管理系统框架[DncZeus]开源啦!!!...
DncZeus 前言 关于 DncZeus DncZeus = Dnc + Zeus "Dnc"--.Net Core 的缩写: "Zeus"--中文译为宙斯, ...
- 开源干货!.NET Core + JWT令牌认证 + Vue.js通用动态权限(RBAC)管理系统框架[DncZeus]开源
DncZeus 前言 关于 DncZeus DncZeus = Dnc + Zeus "Dnc"–.Net Core 的缩写: "Zeus"–中文译为宙斯,是古 ...
- 三分钟学会.NET Core Jwt 策略授权认证
一.前言 大家好我又回来了,前几天讲过一个关于Jwt的身份验证最简单的案例,但是功能还是不够强大,不适用于真正的项目,是的,在真正面对复杂而又苛刻的客户中,我们会不知所措,就现在需要将认证授权这一块也 ...
- .net Core Jwt登录验证刷新Token
使用 jwt做登录验证的时候,token的过期时间的固定的, 也就是只要经过了一定的时间肯定会过期.有可能用户用着系统就突然提示登录失效了.这里通过在行为结果过滤器Result Filter中刷新To ...
- 5.3Role和Claims授权「深入浅出ASP.NET Core系列」
5.3Role和Claims授权「深入浅出ASP.NET Core系列」 原文:5.3Role和Claims授权「深入浅出ASP.NET Core系列」 希望给你3-5分钟的碎片化学习,可能是坐地铁. ...
- 开源干货!.NET Core + Vue.js通用动态权限(RBAC)管理系统框架[DncZeus]开源
DncZeus 前言 关于 DncZeus DncZeus = Dnc + Zeus "Dnc"--.Net Core 的缩写: "Zeus"--中文译为宙斯, ...
- python通用权限管理框架图_开源干货!.NET Core + Vue.js通用动态权限(RBAC)管理系统框架[DncZeus]开源...
DncZeus 前言 关于 DncZeus DncZeus = Dnc + Zeus "Dnc"--.Net Core 的缩写: "Zeus"--中文译为宙斯, ...
- Spring Boot Vue Admin 前后端完全分离的权限控制模版
Spring Boot Vue Admin 简介 提供一套前后端分离的后台权限管理模版,按钮级别的权限控制. 前端 Vue 模板来自 vue-element-admin,其他功能可以根据该项目再进行拓 ...
- golang物联网_使用golang谷歌云平台和grafana监控物联网设备
golang物联网 In this article, we'll be setting up step by step, a monitoring environment for IoT device ...
最新文章
- 宝塔控制面板创建ftp后链接不上的解决方法
- 推荐算法-聚类-K-MEANS
- Java记录-SpringMVC整合Echarts画地图加散点图
- Linux 卸载分区(会格式化分区数据)
- 腾讯广告 3000+万行大代码库主干开发实战
- nginx php空白页 fastcgi_param
- 解决:未能将管道连接到虚拟机: 所有的管道范例都在使用中。
- 并发-分布式锁质量保障总结
- Oracle用户管理(User|Privileges|Role)
- Codeforces Round #555 (Div. 3) E. Minimum Array
- java 中阶乘如何表示_Java阶乘实例
- 兄弟HL4150cdn恢复出厂设置_兄弟打印机恢复出厂设置
- (5)树莓派+1个USB有线网卡+1个USB无线网卡做路由器
- 共识,权威以及去中心化的区块链
- 产品生产的各个阶段:DV,EV,PV ········是什么意思
- 参考分享《Python深度学习》高清中文版pdf+高清英文版pdf+源代码
- 暖通工程师有几个级别,以及注册暖通工程师挂靠价格
- 百度指数爬虫城市对应代码
- [收藏]三国时代的十大遗言
- android电子标签,RFID超高频(UHF)智能柜安卓(ANDRIOD)控制器UKA02