From c1763629496c7d3278e7b9eaeb8bc8129c4ed604 Mon Sep 17 00:00:00 2001 From: wood chen Date: Fri, 21 Feb 2025 21:04:46 +0800 Subject: [PATCH] fix: Improve OAuth callback URL handling in authentication flow --- src/app/api/auth/q58/route.ts | 1 - src/components/auth/user-auth-form.tsx | 8 +++++--- 2 files changed, 5 insertions(+), 4 deletions(-) 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", {