Explorar el Código

😁1、修复Swagger的SchemaId重复问题 2、优化Swagger登录流程

zuohuaijun hace 2 años
padre
commit
dbf0b517d0

+ 2 - 2
Admin.NET/Admin.NET.Application/Configuration/Swagger.json

@@ -34,8 +34,8 @@
         "EnableAllGroups": true,
         "LoginInfo": {
             "Enabled": true, // 是否开启Swagger登录
-            "CheckUrl": "/api/swagger/checkUrl",
-            "SubmitUrl": "/api/swagger/submitUrl"
+            "CheckUrl": "/swagger/checkUrl",
+            "SubmitUrl": "/swagger/submitUrl"
         },
         "EnumToNumber": true // 枚举类型生成值类型
     }

+ 13 - 5
Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs

@@ -25,6 +25,7 @@ public class SysAuthService : IDynamicApiController, ITransient
     private readonly SysOnlineUserService _sysOnlineUserService;
     private readonly SysConfigService _sysConfigService;
     private readonly ICaptcha _captcha;
+    private readonly SysCacheService _sysCacheService;
 
     public SysAuthService(UserManager userManager,
         SqlSugarRepository<SysUser> sysUserRep,
@@ -32,7 +33,8 @@ public class SysAuthService : IDynamicApiController, ITransient
         SysMenuService sysMenuService,
         SysOnlineUserService sysOnlineUserService,
         SysConfigService sysConfigService,
-        ICaptcha captcha)
+        ICaptcha captcha,
+        SysCacheService sysCacheService)
     {
         _userManager = userManager;
         _sysUserRep = sysUserRep;
@@ -41,6 +43,7 @@ public class SysAuthService : IDynamicApiController, ITransient
         _sysOnlineUserService = sysOnlineUserService;
         _sysConfigService = sysConfigService;
         _captcha = captcha;
+        _sysCacheService = sysCacheService;
     }
 
     /// <summary>
@@ -226,7 +229,7 @@ public class SysAuthService : IDynamicApiController, ITransient
     /// </summary>
     /// <returns></returns>
     [AllowAnonymous]
-    [HttpPost("/api/swagger/checkUrl"), NonUnify]
+    [HttpPost("/swagger/checkUrl"), NonUnify]
     [DisplayName("Swagger登录检查")]
     public int SwaggerCheckUrl()
     {
@@ -239,17 +242,22 @@ public class SysAuthService : IDynamicApiController, ITransient
     /// <param name="auth"></param>
     /// <returns></returns>
     [AllowAnonymous]
-    [HttpPost("/api/swagger/submitUrl"), NonUnify]
+    [HttpPost("/swagger/submitUrl"), NonUnify]
     [DisplayName("Swagger登录提交")]
     public async Task<int> SwaggerSubmitUrl([FromForm] SpecificationAuth auth)
     {
         try
         {
+            _sysCacheService.Set(CommonConst.SysCaptcha, false);
+
             await Login(new LoginInput
             {
-                Password = auth.Password,
-                Account = auth.UserName
+                Account = auth.UserName,
+                Password = auth.Password
             });
+
+            _sysCacheService.Remove(CommonConst.SysCaptcha);
+
             return 200;
         }
         catch (Exception)

+ 2 - 2
Admin.NET/Admin.NET.Core/Service/Wechat/Dto/WechatInput.cs

@@ -78,9 +78,9 @@ public class MessageTemplateSendInput
     public string ToUserOpenId { get; set; }
 
     /// <summary>
-    /// 模板数据,格式形如 { "key1": { "value": any }, "key2": { "value": any } }的object
+    /// 模板数据,格式形如 { "key1": { "value": any }, "key2": { "value": any } }
     /// </summary>
-    [Required(ErrorMessage = "模板内容不能为空")]
+    [Required(ErrorMessage = "模板数据不能为空")]
     public Dictionary<string, CgibinMessageTemplateSendRequest.Types.DataItem> Data { get; set; }
 
     /// <summary>

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/Wechat/Dto/WxOpenInput.cs

@@ -75,7 +75,7 @@ public class SendSubscribeMessageInput
     public string ToUserOpenId { get; set; }
 
     /// <summary>
-    /// 模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }的object
+    /// 模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }
     /// </summary>
     [Required(ErrorMessage = "模板内容不能为空")]
     public Dictionary<string, CgibinMessageSubscribeSendRequest.Types.DataItem> Data { get; set; }

+ 7 - 1
Admin.NET/Admin.NET.Web.Core/Startup.cs

@@ -86,7 +86,13 @@ public class Startup : AppStartup
             .AddNewtonsoftJson(options => SetNewtonsoftJsonSetting(options.SerializerSettings))
             //.AddXmlSerializerFormatters()
             //.AddXmlDataContractSerializerFormatters()
-            .AddInjectWithUnifyResult<AdminResultProvider>();
+            .AddInjectWithUnifyResult<AdminResultProvider>(options =>
+            {
+                options.ConfigureSwaggerGen(gen =>
+                {
+                    gen.CustomSchemaIds(u => u.FullName);
+                });
+            });
 
         //// 第三方授权登录
         //services.AddAuthentication()