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);