From 3b6117dc61c08b44f8d0098a55a9caf87a81bd70 Mon Sep 17 00:00:00 2001 From: wood chen Date: Fri, 21 Feb 2025 20:23:50 +0800 Subject: [PATCH] feat: Conditionally set OAuth return URL based on OAuth state --- src/app/api/auth/q58/route.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/app/api/auth/q58/route.ts b/src/app/api/auth/q58/route.ts index 07eb483..32ef508 100644 --- a/src/app/api/auth/q58/route.ts +++ b/src/app/api/auth/q58/route.ts @@ -11,7 +11,13 @@ const clientSecret = process.env.DISCOURSE_SECRET as string; export async function POST(_req: Request) { const nonce = WordArray.random(16).toString(); - const return_url = `${hostUrl}/authorize`; + + // 检查是否存在 OAuth 状态 + const oauthState = cookies().get("oauth_state"); + const return_url = oauthState + ? `${hostUrl}/authorize` // 如果存在 OAuth 状态,重定向到 authorize 页面 + : `${hostUrl}/dashboard`; // 否则重定向到仪表板 + const sso = btoa(`nonce=${nonce}&return_sso_url=${return_url}`); const sig = hmacSHA256(sso, clientSecret).toString(Hex);