.net core 3.1JWT用户权限认证(二)获取token

直接上案列
引入程序集

第二步 建立token接口,和token实现类

 public interface IJwtTokenService{//获取token的方法public string GetToken();}
  public class JwtTokenService : IJwtTokenService{private readonly IConfiguration _configuration;public JwtTokenService(IConfiguration configuration){_configuration = configuration;//获取appsetting专用IConfiguration}/// <summary>/// 获取token的方法/// </summary>/// <returns></returns>public string GetToken(){//创建jwt 三个部分 header,payload,signiture//header:var signingAlgorithm = SecurityAlgorithms.HmacSha256;//256加密格式//payload: 可以加很多东西,自定义的都可以 这里用claimvar claims = new[] {new Claim(JwtRegisteredClaimNames.Sub,"11111111")  //键值对的形式            };//signiture//获取配置文件的私钥var secretByte = Encoding.UTF8.GetBytes(_configuration["Authentication:SecretKey"]);//加密私钥var signingKey = new SymmetricSecurityKey(secretByte);//验证私钥var signingCredentials = new SigningCredentials(signingKey, signingAlgorithm);//产生tokenvar token = new JwtSecurityToken(issuer: _configuration["Authentication:Issuer"],audience: _configuration["Authentication:Audience"],claims,notBefore: DateTime.UtcNow,//发布时间expires: DateTime.UtcNow.AddMinutes(2),//过期时间,这里是2分钟signingCredentials//防伪标志);//输出tokenvar tokenStr = new JwtSecurityTokenHandler().WriteToken(token);return tokenStr;}}

配置文件内容

"Authentication": {"SecretKey": "123456789qwertyuiop","Issuer": "qwertyuiop","Audience": "qwertyuiop"}

最后把服务注册到自带的IServiceCollection

  services.AddScoped<IJwtTokenService, JwtTokenService>();

填坑

错误信息:System.ArgumentOutOfRangeException:“IDX10603: Decryption failed. Keys tried: ‘[PII is hidden. For more details, see https://aka.ms/IdentityModel/PII.]’.
Exceptions caught:
‘[PII is hidden. For more details, see https://aka.ms/IdentityModel/PII.]’.
token: ‘[PII is hidden. For more details, see https://aka.ms/IdentityModel/PII.]’ ”

讲道理这个错误信息真的看不懂
为了让错误信息更加的简单明了我们在startup文件中的Configure
中增加

    IdentityModelEventSource.ShowPII = true;

再次运行错误信息就变成了
System.ArgumentOutOfRangeException:“IDX10603: Decryption failed. Keys tried: ‘HS256’.
Exceptions caught:
‘128’.
token: ‘96’ ”

问题原因就是:在设置配置文件SecretKey中的值的时候给的太短了,官方要求必须大于等于16个字符

再次运行 成功获取到token

可以把获取刀的token拿到jwt官网去解析。这里就不做了

.net core 3.1JWT用户权限认证(二)获取token相关推荐

  1. Django+Vue,前后端分离,实现用户权限认证

    网上教程一大堆,要么思路不够清晰,要么给你扔一大段代码,只有几行注释.... 看了我这个,你奶奶来都能实现前后端分离用户权限认证! Django 采用token认证方式,使用 rest_framewo ...

  2. Java权限管理|基于springBoot+springSecurity+jwt实现前后端分离用户权限认证

    基于springBoot+springSecurity+jwt实现前后端分离用户权限认证 1. 项目说明   主要基于前后端分离情况下用户权限认证, 当用户登录认证成功后,每个用户会获取到自己的tok ...

  3. ABP VNext认证授权获取Token

    ABP VNext认证授权获取Token 1.Password授权方式获取 1.1 请求说明 1.2 请求示例 1.3 请求参数 2.authorization_code模式获取 2.1 无认证授权, ...

  4. 微服务之间单点登录和用户权限认证的实现

    目录 单系统登录机制 HTTP无状态协议 Cookie会话机制 登录状态 多系统登录难点 单点登录系统 单点登录流程 单点注销流程 部署图 子系统与sso认证中心的功能 准备工作 项目结构 修改网关配 ...

  5. 基于 Spring Security 搭建用户权限系统(二) - 自定义配置

    说明 本文的目的是如何基于 Spring Security 去扩展实现一个基本的用户权限模块, 内容会覆盖到 Spring Security 常用的配置. 文中涉及到的业务代码是不完善的, 甚至会存在 ...

  6. 探索Hive用户权限(二):HiveServer2安全访问Hive

    目录 前言 一.提出问题:beeline登录后没有认证 二.hiveServer2的身份认证 1.自定义hiveServer2身份认证 2.测试一下 三.hive.server2.enable.doA ...

  7. 若依微服务版怎样修改Nacos中配置文件使Url不受权限认证跳过Token验证

    场景 若依微服务版手把手教你本地搭建环境并运行前后端项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/109363303 在上 ...

  8. 怎么获取计算机用户权限,Windows7怎么获取administrator权限?

    在平时的工作中,我们偶尔会删除一些文件,但是发现系统提示没有权限,于是这时候我们就必须获取administrator权限了,但是很多用户不知道Windows7怎么获取administrator权限,为 ...

  9. 计算机超级用户权限,win7系统获取超级用户权限的方法(图文)

    电脑安装上win7操作系统后,都会建立管理员账户,这样能够保护电脑安全.在win7专业版系统中修改和删除一些文件需要获取管理器权限,获取到用户权限,但是其中还有一个超级的用户权限,那么win7系统怎么 ...

最新文章

  1. 作价20亿美元!英特尔收购以色列AI芯片公司Habana Labs
  2. 一份超详细的 Java 问题排查工具单
  3. boost::sort模块实现spreadsort 64 位整数排序示例
  4. openshift安装_云幸福–如何在几分钟内安装新的OpenShift Container Platform 3.7
  5. Cake -- ACM解决方法
  6. pandas之DataFrame合并merge
  7. 天气预报Dom解析(转)
  8. wpf 控件生成图片_EyeshotCAD控件生成以及作用
  9. 常见开源协议大白话说明
  10. lambda 复制数组
  11. (26)VHDL实现或(数据流描述)
  12. 谈谈JavaScript中的function constructor和new关键字
  13. SAStruts中文文档
  14. tecplot360的宏命令
  15. OpenXR+Runtime:OpenXR SDK Source Code源码编译
  16. 非参数统计——第二章 单样本问题
  17. 生成条形码(jsbarcode、vue-barcode)
  18. linux那些事之page fault(do_fault)(5)
  19. 关于linux中limits的一些总结
  20. win2012 r2/win2016修改域密码复杂度策略

热门文章

  1. 京东首页静态页面html+css
  2. type-c边玩边充电游戏手柄方案
  3. 安卓是属于全人类的还是谷歌的私有产品?
  4. 怎么把线稿提取出来_ps怎么把彩色图片提取线稿出来,就黑白线稿的那种 要详细!...
  5. 完美解决Xmind打开乱码的问题
  6. 初识 GitHub · 简介篇
  7. 干货|如何写好项目进度报告
  8. viewerjs 在html打开图片或打开pdf文件使用案例
  9. ajax回调函数有时成功有时失败,$.ajax数据传输成功却执行失败的回调函数
  10. nyoj 1273 宣传墙