前言:这章是在上一章基础上学习的,对于上一章要求理解代码含义,这章要求会写代码。
一.ASP.NET Core对于JWT的封装
ASP.NET Core对于JWT的封装的含义
让我们在程序中使用JWT进行鉴权和授权更简单
二.JWT的封装的具体步骤
第一步:我们现在配置系统中配置一个名为JWT的节点,并在节点下创建一个SingingKey、ExpireSeconds两个配置项,分别代表JWT的密钥和过期时间单位为秒。我们在创建一个对应JWT节点的配置类JWTOption,类中包含SingingKey、ExpireSeconds这两个属性。
第二步:下载NuGet包nstall-Package Microsoft.AspNetCore.Authentication.JwtBearer -Version 6.0.12包,这个包封装了简化了ASP.NET Core中使用JWT的操作。
第三步:编写代码对JWT进行配置,把下面的代码添加到Program.cs的builder.Build之前
代码解释
第一行读取JWT文件
第二行启用Authentication做登录用的
第三到最后对JWT进行配置做校验
第四步:在Program.cs的app.UseAuthorization之前添加app.UseAuthentication
代码解释中间件的添加所以顺序不能乱
第五步:在Test1Controller类中增加登录并且创建JWT的操作方法Login2
在Controller容器中右键-》选择添加-》选择API容器-》创建项目
添加只读代码
在上一个类基础上在加在新建一个容器类命名为Demo1Controller
运行结果:报了401错误表示没有访问权限
想要改变上边的情况需要在PostMan自定义报文头:Authorization的值为“Bearer JWTToke”,
Authorization中的Bearer和JWT令牌之间一定要通过空格分开。
三.在Swagger中调试带JWT的请求
代码解释
第5行解释说明写什么都可以
第8行报文头的名字Authorization
第9 行把参数放到报文头里边
这些代码加到Programe.cs中加到
之前
点击图片左上角的图标-》然后出现下边的画面-》在框中加入Bearer空格+JWT令牌然后就可以访问了