本文源码下载地址:http://www.80cxy.com/Blog/ResourceView?arId=202403191532545995NAAqJh
系列教程地址:http://www.80cxy.com/Blog/ArticleView?arId=202403191517574161ay3s5V
用户登录成功之后,后台返回JWT格式的token,再后续访问其他接口时需要携带token,为方便Swagger调试,可以开启Swagger的Authorize按钮用于设置接口调用携带的token。默认Swagger不显示Authorize。配置完Swagger页面显示如下:
点击按钮,输入token,注意格式必须在token前面增加“Bearer “字符。
一、配置代码如下:
在SignUp.Common项目JWT文件夹中新增SwaggerGenOptionsExtensions类,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | using Microsoft.Extensions.DependencyInjection; using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; namespace SignUp.Common.JWT { public static class SwaggerGenOptionsExtensions { /// <summary> /// 为Swagger增加Authentication报文头 /// </summary> /// <param name="c"></param> public static void AddAuthenticationHeader( this SwaggerGenOptions c) { c.AddSecurityDefinition( "Authorization" , new OpenApiSecurityScheme { Description = "Authorization header. \r\nExample: 'Bearer 12345abcdef'" , Name = "Authorization" , In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey, Scheme = "Authorization" }); c.AddSecurityRequirement( new OpenApiSecurityRequirement() { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Authorization" }, Scheme = "oauth2" , Name = "Authorization" , In = ParameterLocation.Header, }, new List< string >() } }); } } } |
二、启用Swagger中的【Authorize】按钮配置
在WebApplicationBuilderExtensions配置类的ConfigureExtraServices方法增加如下配置代码:
1 2 3 4 5 | //启用Swagger中的【Authorize】按钮。这样就不用每个项目的AddSwaggerGen中单独配置了 services.Configure<SwaggerGenOptions>(c => { c.AddAuthenticationHeader(); }); |
学习交流
附笔者学习 .net core开发时参考相关项目实例源码:asp.net core webapi项目实例源代码锦集下载(72个)