.Net Core API的Swagger测试加入授权验证(启用JWT授权)
.Net Core 的Swagger测试加入授权验证(启用JWT授权)
参考网址:如何使用Swagger为.NET Core 3.0应用添加JWT授权说明文档 - 简书 (jianshu.com)
--背景、意义:
1、当我们运行项目时,经常会遇到需要授权或者请求时需要带有token才可以实现对应功能(访问对应接口)【例如根据token判断是否登录】
2、*我们需要在要进行判断的对应方法上一一传入Token值,并且一一编写验证Token代码--麻烦;
*为了解决这一问题,我们通过添加行为过滤器(.Net Core Api 操作过滤器(行为过滤器) +.net core Api过滤器获取QueryString值 或 获取请求标头数据 - じ逐梦 - 博客园 (cnblogs.com)),将相同的验证Token代码统一放在过滤器内,减少了代码冗余,;
*但是使用过滤器后,在进行Swagger测试时,无法给过滤器传入Token,在运行对应方法时,一直提示我们没有登录(token为空),
所以我们对Swagger加入 授权验证(启用JWT授权)
*只要授权成功,则Swagger测试执行不同功能时不需要再输入token信息…
2、 授权验证‘ 和过滤器一起使用的
1、不加入授权验证情况(使用过滤器)
-----一直会返回401(自定义)就是没有登录的提示

2、加入授权验证

2-1代码实现
--在Start up 类中 ConfigureServices方法加入

//swagger授权方案定义 c.AddSecurityDefinition("Bearer", //定义授权方案的名称 new OpenApiSecurityScheme() { Description = "请输入token:X-Token:{token}", //描述文字 Name = "X-Token", //参数名--与标题头的参名相同 In = ParameterLocation.Header, //参数放在Header中 Type = SecuritySchemeType.ApiKey, //类型是apikey }); //加载授权方案 c.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" //授权方案名称 } }, new string[] { } } }); //在Swagger中加入验证结束
本文来自博客园,作者:じ逐梦,转载请注明原文链接:https://www.cnblogs.com/ZhuMeng-Chao/p/16216879.html

浙公网安备 33010602011771号