zuohuaijun пре 3 година
родитељ
комит
0fea3bf8e9

+ 4 - 4
Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj

@@ -20,10 +20,10 @@
 
   <ItemGroup>
     <PackageReference Include="Caching.CSRedis" Version="3.8.2" />
-    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="3.6.1" />
-    <PackageReference Include="Furion.Extras.Logging.Serilog" Version="3.6.1" />
-    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="3.6.1" />
-    <PackageReference Include="Furion.Pure" Version="3.6.1" />
+    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="3.6.2" />
+    <PackageReference Include="Furion.Extras.Logging.Serilog" Version="3.6.2" />
+    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="3.6.2" />
+    <PackageReference Include="Furion.Pure" Version="3.6.2" />
     <PackageReference Include="Magicodes.IE.Excel" Version="2.6.4" />
     <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.6" />
     <PackageReference Include="MySql.Data" Version="8.0.29" />

+ 13 - 0
Admin.NET/Admin.NET.Core/Admin.NET.Core.xml

@@ -3299,6 +3299,19 @@
             退出系统
             </summary>
         </member>
+        <member name="M:Admin.NET.Core.Service.AuthService.SwaggerCheckUrl">
+            <summary>
+            Swagger登录检查
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Admin.NET.Core.Service.AuthService.SwaggerSubmitUrl(Furion.SpecificationDocument.SpecificationAuth)">
+            <summary>
+            Swagger登录
+            </summary>
+            <param name="auth"></param>
+            <returns></returns>
+        </member>
         <member name="T:Admin.NET.Core.Service.LoginInput">
             <summary>
             用户登录参数

+ 8 - 1
Admin.NET/Admin.NET.Core/AdminNETConfig.json

@@ -8,7 +8,14 @@
         "Description": "让 .NET 开发更简单、更通用、更流行。前后端分离架构(.NET6/Vue3),开箱即用紧随前沿技术。<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>",
         "Version": "2.0.0"
       }
-    ]
+    ],
+    "LoginInfo": {
+      "Enabled": true, // 是否开启Swagger登录
+      "CheckUrl": "/Swagger/CheckUrl",
+      "SubmitUrl": "/Swagger/SubmitUrl",
+      "UserName": "admin",
+      "PassWord": "000000"
+    }
   },
   "AppSettings": {
     "InjectSpecificationDocument": true // 生产环境是否开启Swagger

+ 5 - 0
Admin.NET/Admin.NET.Core/Const/CacheConst.cs

@@ -49,4 +49,9 @@ public class CacheConst
     /// 常量下拉框
     /// </summary>
     public const string KeyConstSelector = "selector:";
+
+    /// <summary>
+    /// swagger登录缓存
+    /// </summary>
+    public const string SwaggerLogin = "swaggerlogin:";
 }

+ 38 - 2
Admin.NET/Admin.NET.Core/Service/Auth/AuthService.cs

@@ -1,4 +1,7 @@
-namespace Admin.NET.Core.Service;
+using Furion.SpecificationDocument;
+using Microsoft.Extensions.Caching.Memory;
+
+namespace Admin.NET.Core.Service;
 
 /// <summary>
 /// 系统登录授权服务
@@ -13,6 +16,7 @@ public class AuthService : IDynamicApiController, ITransient
     private readonly IEventPublisher _eventPublisher;
     private readonly SysUserService _sysUserService;
     private readonly SysUserRoleService _sysUserRoleService;
+    private readonly IMemoryCache _cache;
 
     public AuthService(SqlSugarRepository<SysUser> sysUserRep,
         IOptions<RefreshTokenOptions> refreshTokenOptions,
@@ -20,7 +24,8 @@ public class AuthService : IDynamicApiController, ITransient
         IUserManager userManager,
         IEventPublisher eventPublisher,
         SysUserService sysUserService,
-        SysUserRoleService sysUserRoleService)
+        SysUserRoleService sysUserRoleService,
+        IMemoryCache cache)
     {
         _sysUserRep = sysUserRep;
         _httpContextAccessor = httpContextAccessor;
@@ -29,6 +34,7 @@ public class AuthService : IDynamicApiController, ITransient
         _eventPublisher = eventPublisher;
         _sysUserService = sysUserService;
         _sysUserRoleService = sysUserRoleService;
+        _cache = cache;
     }
 
     /// <summary>
@@ -162,4 +168,34 @@ public class AuthService : IDynamicApiController, ITransient
             RealName = user.RealName
         });
     }
+
+    /// <summary>
+    /// Swagger登录检查
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("/Swagger/CheckUrl"), NonUnify]
+    [AllowAnonymous]
+    public int SwaggerCheckUrl()
+    {
+        return _cache.Get<bool>(CacheConst.SwaggerLogin) ? 200 : 401;
+    }
+
+    /// <summary>
+    /// Swagger登录
+    /// </summary>
+    /// <param name="auth"></param>
+    /// <returns></returns>
+    [HttpPost("/Swagger/SubmitUrl"), NonUnify]
+    [AllowAnonymous]
+    public int SwaggerSubmitUrl([FromForm] SpecificationAuth auth)
+    {
+        var username = App.Configuration["SpecificationDocumentSettings:LoginInfo:UserName"];
+        var password = App.Configuration["SpecificationDocumentSettings:LoginInfo:PassWord"];
+        if (auth.UserName == username && auth.Password == password)
+        {
+            _cache.Set<bool>(CacheConst.SwaggerLogin, true);
+            return 200;
+        }
+        return 401;
+    }
 }