Эх сурвалжийг харах

使用系统账号登录swagger

yanqi 2 жил өмнө
parent
commit
fce644b7f7

+ 39 - 41
Admin.NET/Admin.NET.Application/Configuration/Swagger.json

@@ -1,44 +1,42 @@
 {
 {
-    "$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
+  "$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
 
 
-    "SpecificationDocumentSettings": {
-        "DocumentTitle": "Admin.NET 框架",
-        "GroupOpenApiInfos": [
-            {
-                "Group": "Default",
-                "Title": "Admin.NET",
-                "Description": "让 .NET 开发更简单、更通用、更流行。前后端分离架构(.NET6/Vue3),开箱即用紧随前沿技术。<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>",
-                "Version": "1.0.0",
-                "TermsOfService": "https://dotnetchina.gitee.io/furion/",
-                "Contact": {
-                    "Name": "zuohuaijun",
-                    "Email": "515096995@qq.com",
-                    "Url": "https://gitee.com/zuohuaijun/Admin.NET"
-                }
-            },
-            {
-                "Group": "All Groups",
-                "Title": "所有接口",
-                "Description": "让 .NET 开发更简单、更通用、更流行。前后端分离架构(.NET6/Vue3),开箱即用紧随前沿技术。<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>",
-                "Version": "1.0.0",
-                "TermsOfService": "https://dotnetchina.gitee.io/furion/",
-                "Contact": {
-                    "Name": "zuohuaijun",
-                    "Email": "515096995@qq.com",
-                    "Url": "https://gitee.com/zuohuaijun/Admin.NET"
-                }
-            }
-        ],
-        "DefaultGroupName": "Default", // 默认分组名
-        "DocExpansionState": "List", // List、Full、None
-        "EnableAllGroups": true,
-        "LoginInfo": {
-            "Enabled": false, // 是否开启Swagger登录
-            "CheckUrl": "/api/swagger/checkUrl",
-            "SubmitUrl": "/api/swagger/submitUrl",
-            "UserName": "admin",
-            "Password": "000000"
-        },
-        "EnumToNumber": true // 枚举类型生成值类型
-    }
+  "SpecificationDocumentSettings": {
+    "DocumentTitle": "Admin.NET 框架",
+    "GroupOpenApiInfos": [
+      {
+        "Group": "Default",
+        "Title": "Admin.NET",
+        "Description": "让 .NET 开发更简单、更通用、更流行。前后端分离架构(.NET6/Vue3),开箱即用紧随前沿技术。<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>",
+        "Version": "1.0.0",
+        "TermsOfService": "https://dotnetchina.gitee.io/furion/",
+        "Contact": {
+          "Name": "zuohuaijun",
+          "Email": "515096995@qq.com",
+          "Url": "https://gitee.com/zuohuaijun/Admin.NET"
+        }
+      },
+      {
+        "Group": "All Groups",
+        "Title": "所有接口",
+        "Description": "让 .NET 开发更简单、更通用、更流行。前后端分离架构(.NET6/Vue3),开箱即用紧随前沿技术。<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>",
+        "Version": "1.0.0",
+        "TermsOfService": "https://dotnetchina.gitee.io/furion/",
+        "Contact": {
+          "Name": "zuohuaijun",
+          "Email": "515096995@qq.com",
+          "Url": "https://gitee.com/zuohuaijun/Admin.NET"
+        }
+      }
+    ],
+    "DefaultGroupName": "Default", // 默认分组名
+    "DocExpansionState": "List", // List、Full、None
+    "EnableAllGroups": true,
+    "LoginInfo": {
+      "Enabled": true, // 是否开启Swagger登录
+      "CheckUrl": "/api/swagger/checkUrl",
+      "SubmitUrl": "/api/swagger/submitUrl"
+    },
+    "EnumToNumber": true // 枚举类型生成值类型
+  }
 }
 }

+ 14 - 10
Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs

@@ -8,7 +8,9 @@
 // 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
 // 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
 
 
 using Furion.SpecificationDocument;
 using Furion.SpecificationDocument;
+
 using Lazy.Captcha.Core;
 using Lazy.Captcha.Core;
+
 using Microsoft.Extensions.Caching.Memory;
 using Microsoft.Extensions.Caching.Memory;
 
 
 namespace Admin.NET.Core.Service;
 namespace Admin.NET.Core.Service;
@@ -25,7 +27,6 @@ public class SysAuthService : IDynamicApiController, ITransient
     private readonly SysMenuService _sysMenuService;
     private readonly SysMenuService _sysMenuService;
     private readonly SysOnlineUserService _sysOnlineUserService;
     private readonly SysOnlineUserService _sysOnlineUserService;
     private readonly SysConfigService _sysConfigService;
     private readonly SysConfigService _sysConfigService;
-    private readonly IMemoryCache _cache;
     private readonly ICaptcha _captcha;
     private readonly ICaptcha _captcha;
 
 
     public SysAuthService(UserManager userManager,
     public SysAuthService(UserManager userManager,
@@ -34,7 +35,6 @@ public class SysAuthService : IDynamicApiController, ITransient
         SysMenuService sysMenuService,
         SysMenuService sysMenuService,
         SysOnlineUserService sysOnlineUserService,
         SysOnlineUserService sysOnlineUserService,
         SysConfigService sysConfigService,
         SysConfigService sysConfigService,
-        IMemoryCache cache,
         ICaptcha captcha)
         ICaptcha captcha)
     {
     {
         _userManager = userManager;
         _userManager = userManager;
@@ -43,7 +43,6 @@ public class SysAuthService : IDynamicApiController, ITransient
         _sysMenuService = sysMenuService;
         _sysMenuService = sysMenuService;
         _sysOnlineUserService = sysOnlineUserService;
         _sysOnlineUserService = sysOnlineUserService;
         _sysConfigService = sysConfigService;
         _sysConfigService = sysConfigService;
-        _cache = cache;
         _captcha = captcha;
         _captcha = captcha;
     }
     }
 
 
@@ -235,7 +234,7 @@ public class SysAuthService : IDynamicApiController, ITransient
     [DisplayName("swagger登录检查")]
     [DisplayName("swagger登录检查")]
     public int SwaggerCheckUrl()
     public int SwaggerCheckUrl()
     {
     {
-        return _cache.Get<bool>(CacheConst.SwaggerLogin) ? 200 : 401;
+        return _httpContextAccessor.HttpContext.User.Identity.IsAuthenticated ? 200 : 401;
     }
     }
 
 
     /// <summary>
     /// <summary>
@@ -246,15 +245,20 @@ public class SysAuthService : IDynamicApiController, ITransient
     [AllowAnonymous]
     [AllowAnonymous]
     [HttpPost("/api/swagger/submitUrl"), NonUnify]
     [HttpPost("/api/swagger/submitUrl"), NonUnify]
     [DisplayName("swagger登录提交")]
     [DisplayName("swagger登录提交")]
-    public int SwaggerSubmitUrl([FromForm] SpecificationAuth auth)
+    public async Task<int> SwaggerSubmitUrl([FromForm] SpecificationAuth auth)
     {
     {
-        var userName = App.GetConfig<string>("SpecificationDocumentSettings:LoginInfo:UserName");
-        var password = App.GetConfig<string>("SpecificationDocumentSettings:LoginInfo:Password");
-        if (auth.UserName == userName && auth.Password == password)
+        try
         {
         {
-            _cache.Set<bool>(CacheConst.SwaggerLogin, true);
+            await Login(new LoginInput
+            {
+                Password = auth.Password,
+                Account = auth.UserName
+            });
             return 200;
             return 200;
         }
         }
-        return 401;
+        catch (Exception)
+        {
+            return 401;
+        }
     }
     }
 }
 }