From bca40047b9783d5aadf05d64b128191edb418b09 Mon Sep 17 00:00:00 2001
From: Demo <Demo@DESKTOP-CPA90BF>
Date: 星期四, 20 六月 2024 16:46:36 +0800
Subject: [PATCH] 修改验签特性

---
 Wms/Utility/Filter/ApiSignatureVerificationAttribute.cs |   40 ++++++++++++++++++++++++++++++++--------
 1 files changed, 32 insertions(+), 8 deletions(-)

diff --git a/Wms/Utility/Filter/ApiSignatureVerificationAttribute.cs b/Wms/Utility/Filter/ApiSignatureVerificationAttribute.cs
index dc85ffb..8d156f0 100644
--- a/Wms/Utility/Filter/ApiSignatureVerificationAttribute.cs
+++ b/Wms/Utility/Filter/ApiSignatureVerificationAttribute.cs
@@ -16,8 +16,8 @@
     [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false)]
     public class VerificationAttribute : ActionFilterAttribute
     {
-        private static readonly string appKey = "signature";//鍚庨潰鏀规垚鎷块厤缃枃浠剁殑
-        private static readonly double Minutes = 5;//鏃堕棿鎴冲繀椤�5鍒嗛挓鍐呯殑锛屽惁鍒欎笉閫氳繃
+        private static readonly string appKey = SignConfig.AppKey;
+        private static readonly double Minutes = SignConfig.Minutes;//鏃堕棿鎴冲繀椤�5鍒嗛挓鍐呯殑锛屽惁鍒欎笉閫氳繃
         public VerificationAttribute()
         {
 
@@ -71,19 +71,43 @@
 
         private bool IsTimestampValid(string timestamp)
         {
-            if (long.TryParse(timestamp, out var timestampSeconds))
+            //var logs = long.Parse(timestamp);
+            //var logs2 = int.Parse(timestamp);
+            ////if (long.TryParse(timestamp, out var timestampSeconds))
+            ////{
+            //    var requestDateTime = DateTimeOffset.FromUnixTimeSeconds(logs);
+            //    var currentDateTime = DateTimeOffset.UtcNow;
+
+            //    // 璁$畻鏃堕棿宸�
+            //    var timeDifference = currentDateTime - requestDateTime;
+
+            //    // 姣旇緝鏃堕棿宸槸鍚﹀湪鍏佽鐨勮寖鍥村唴
+            //    return timeDifference.TotalMinutes <= Minutes;
+
+            ////}
+            //return false;
+
+            try
             {
-                var requestDateTime = DateTimeOffset.FromUnixTimeSeconds(timestampSeconds);
+                var requestDateTime = DateTimeOffset.FromUnixTimeSeconds(long.Parse(timestamp));
                 var currentDateTime = DateTimeOffset.UtcNow;
 
                 // 璁$畻鏃堕棿宸�
                 var timeDifference = currentDateTime - requestDateTime;
 
                 // 姣旇緝鏃堕棿宸槸鍚﹀湪鍏佽鐨勮寖鍥村唴
-                return timeDifference.TotalMinutes <= 5;
+                return timeDifference.TotalMinutes <= Minutes;
             }
-
-            return false;
+            catch (Exception)
+            {
+                return false;
+            }
         }
     }
-}
+    public class SignConfig
+    {
+        public static string AppKey { get; set; }
+        public static double Minutes { get; set; }
+    }
+
+}
\ No newline at end of file

--
Gitblit v1.8.0