فهرست منبع

debug: add detailed HMAC validation logging #96

Claude 5 ماه پیش
والد
کامیت
1ac713690b
1فایلهای تغییر یافته به همراه14 افزوده شده و 1 حذف شده
  1. 14 1
      supabase/functions/oauth-shoprenter-callback/index.ts

+ 14 - 1
supabase/functions/oauth-shoprenter-callback/index.ts

@@ -17,23 +17,36 @@ function validateHMAC(query: Record<string, string>, clientSecret: string): bool
     return false
     return false
   }
   }
 
 
+  if (!clientSecret) {
+    console.error('[ShopRenter] Client secret is empty or undefined')
+    return false
+  }
+
   // Build sorted query string without HMAC
   // Build sorted query string without HMAC
   const sortedParams = Object.keys(params)
   const sortedParams = Object.keys(params)
     .sort()
     .sort()
     .map(key => `${key}=${params[key]}`)
     .map(key => `${key}=${params[key]}`)
     .join('&')
     .join('&')
 
 
+  console.log(`[ShopRenter] HMAC validation - sorted params: ${sortedParams}`)
+  console.log(`[ShopRenter] HMAC validation - client secret length: ${clientSecret.length}`)
+
   // Calculate HMAC using sha256
   // Calculate HMAC using sha256
   const calculatedHmac = createHmac('sha256', clientSecret)
   const calculatedHmac = createHmac('sha256', clientSecret)
     .update(sortedParams)
     .update(sortedParams)
     .digest('hex')
     .digest('hex')
 
 
+  console.log(`[ShopRenter] HMAC validation - received hmac: ${hmac}`)
+  console.log(`[ShopRenter] HMAC validation - calculated hmac: ${calculatedHmac}`)
+
   // Timing-safe comparison
   // Timing-safe comparison
   try {
   try {
-    return timingSafeEqual(
+    const result = timingSafeEqual(
       new TextEncoder().encode(calculatedHmac),
       new TextEncoder().encode(calculatedHmac),
       new TextEncoder().encode(hmac)
       new TextEncoder().encode(hmac)
     )
     )
+    console.log(`[ShopRenter] HMAC validation result: ${result}`)
+    return result
   } catch (error) {
   } catch (error) {
     console.error('[ShopRenter] HMAC comparison error:', error)
     console.error('[ShopRenter] HMAC comparison error:', error)
     return false
     return false