From 2c94af2b91c365cfca53877589c79b282bc50d94 Mon Sep 17 00:00:00 2001 From: wood chen Date: Fri, 21 Feb 2025 21:25:27 +0800 Subject: [PATCH] fix: Improve OAuth callback URL parsing and handling --- src/components/auth/user-auth-form.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/auth/user-auth-form.tsx b/src/components/auth/user-auth-form.tsx index c193f2e..7db9658 100644 --- a/src/components/auth/user-auth-form.tsx +++ b/src/components/auth/user-auth-form.tsx @@ -29,22 +29,22 @@ export function UserAuthForm({ console.log("Original callbackUrl:", callbackUrl); - // 如果是 OAuth 回调,则提取原始的 /oauth/authorize 部分 + // 如果是 OAuth 回调,则保留完整的 OAuth 参数 if (callbackUrl?.includes("/oauth/authorize")) { try { // 先解码一次 URL const decodedUrl = decodeURIComponent(callbackUrl); console.log("Decoded URL:", decodedUrl); - // 提取 /oauth/authorize 部分 - const match = decodedUrl.match(/\/oauth\/authorize[^&]*/); - if (match) { - body.return_url = `${window.location.origin}${match[0]}`; + // 解析 URL 并保留所有参数 + const url = new URL(decodedUrl); + if (url.pathname === "/oauth/authorize") { + body.return_url = `${window.location.origin}${url.pathname}${url.search}`; console.log("Extracted return_url:", body.return_url); } } catch (e) { console.error("URL 处理错误:", e); - body.return_url = `${window.location.origin}/oauth/authorize`; + body.return_url = `${window.location.origin}/authorize`; } }