ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

.Net Core API的Swagger测试加入授权验证(启用JWT授权)

2022-05-03 08:35:11  阅读:361  来源: 互联网

标签:Core 验证 -- JWT token new 授权 Swagger


.Net Core 的Swagger测试加入授权验证(启用JWT授权)

参考网址:如何使用Swagger为.NET Core 3.0应用添加JWT授权说明文档 - 简书 (jianshu.com)

--背景、意义:

1、当我们运行项目时,经常会遇到需要授权或者请求时需要带有token才可以实现对应功能(访问对应接口),

【编写代码时使用过滤器的方式加入授权(是否登录)验证,运行时对应方法无法传入token,所以会一直登录不成功】

所以我们需要对其加入授权验证,只要授权成功,则Swagger测试执行对应功能不需要再次验证…

2、 不使用‘授权验证‘,则在Swagger测试过程中,执行需要授权才可访问的功能时,需要一一输入token,并且只要重新运行,都需要输入对应的token--麻烦

 

1、不加入授权验证情况

  -----一直会返回401(自定义)就是没有登录的提示

  --并且使用过滤器后,不需要各个方法进行单独写验证,也不需要对应方法获取token(接/传参)

 

 

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中加入验证结束

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

      

 

标签:Core,验证,--,JWT,token,new,授权,Swagger
来源: https://www.cnblogs.com/ZhuMeng-Chao/p/16216879.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有