diff --git a/src/app/api/auth/q58/route.ts b/src/app/api/auth/q58/route.ts index 2901cdf..2bd2a10 100644 --- a/src/app/api/auth/q58/route.ts +++ b/src/app/api/auth/q58/route.ts @@ -14,7 +14,6 @@ export async function POST(req: Request) { const nonce = WordArray.random(16).toString(); let return_url = `${hostUrl}/authorize`; - // 尝试从请求中获取 return_url try { const body = await req.json(); if (body.return_url) { diff --git a/src/components/auth/user-auth-form.tsx b/src/components/auth/user-auth-form.tsx index 3df35c1..103894c 100644 --- a/src/components/auth/user-auth-form.tsx +++ b/src/components/auth/user-auth-form.tsx @@ -25,9 +25,11 @@ export function UserAuthForm({ try { const body: Record = {}; const callbackUrl = searchParams?.get("callbackUrl"); - if (callbackUrl) { - const decodedUrl = decodeURIComponent(callbackUrl); - body.return_url = decodedUrl; + + // 如果是 OAuth 回调,则提取原始的 /oauth/authorize 部分 + if (callbackUrl?.includes("/oauth/authorize")) { + const url = new URL(callbackUrl); + body.return_url = `${window.location.origin}${url.pathname}${url.search}`; } const response = await fetch("/api/auth/q58", {