Explorar el Código

实现ids4滑块验证功能

zhontai hace 3 años
padre
commit
86354d6e49

+ 2 - 1
Admin.Core.Service/Admin/Auth/AuthService.cs

@@ -135,7 +135,8 @@ namespace Admin.Core.Service.Admin.Auth
                     return ResponseOutput.NotOk("验证码已过期!", 1);
                 }
                 */
-                var isOk = await _captcha.CheckAsync(input.Captcha, true);
+                input.Captcha.DeleteCache = true;
+                var isOk = await _captcha.CheckAsync(input.Captcha);
                 if (!isOk)
                 {
                     return ResponseOutput.NotOk("安全验证不通过,请重新登录!");

+ 0 - 6
Admin.Core.Tests/Controller/BaseControllerTest.cs

@@ -1,15 +1,9 @@
 using Admin.Core.Common.Cache;
 using Admin.Core.Common.Configs;
-using Admin.Core.Common.Output;
-using Admin.Core.Service.Admin.Auth;
 using Admin.Core.Service.Admin.Auth.Input;
-using Admin.Core.Service.Admin.Auth.Output;
 using Admin.Tools.Captcha;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
-using Newtonsoft.Json.Serialization;
-using System;
-using System.Collections.Generic;
 using System.ComponentModel;
 using System.Linq;
 using System.Net;

+ 5 - 0
Admin.Tools/Captcha/Dtos/SlideJigsawCaptchaInput.cs → Admin.Tools/Captcha/Dtos/CaptchaInput.cs

@@ -7,6 +7,11 @@
         /// </summary>
         public string Token { get; set; }
 
+        /// <summary>
+        /// 删除缓存
+        /// </summary>
+        public bool DeleteCache { get; set; } = false;
+
         /// <summary>
         /// 数据
         /// </summary>

+ 1 - 1
Admin.Tools/Captcha/ICaptcha.cs

@@ -19,6 +19,6 @@ namespace Admin.Tools.Captcha
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
-        Task<bool> CheckAsync(CaptchaInput input, bool deleteCache = false);
+        Task<bool> CheckAsync(CaptchaInput input);
     }
 }

+ 2 - 3
Admin.Tools/Captcha/SlideJigsawCaptcha.cs

@@ -321,9 +321,8 @@ namespace Admin.Tools.Captcha
         /// 检查验证数据
         /// </summary>
         /// <param name="input"></param>
-        /// <param name="needDelete"></param>
         /// <returns></returns>
-        public async Task<bool> CheckAsync(CaptchaInput input, bool deleteCache = false)
+        public async Task<bool> CheckAsync(CaptchaInput input)
         {
             var key = string.Format(CacheKey.VerifyCodeKey, input.Token);
             if (await _cache.ExistsAsync(key))
@@ -334,7 +333,7 @@ namespace Admin.Tools.Captcha
                     var x = await _cache.GetAsync<int>(key);
                     if (Math.Abs(x - point.X) < 5)
                     {
-                        if (deleteCache)
+                        if (input.DeleteCache)
                         {
                             await _cache.DelAsync(key);
                         }