mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-04-08 03:00:28 -04:00
refactor: simplify callback to forward raw Supabase error params
Address CodeRabbit + Sentry feedback: - Remove duplicate error classification from callback (page already handles it) - Fix double-encoding bug (encodeURIComponent + URLSearchParams) - Forward raw error/error_code/error_description params as-is - Let reset-password page be the single source of truth for error classification
This commit is contained in:
@@ -15,27 +15,17 @@ export async function GET(request: NextRequest) {
|
||||
const errorCode = searchParams.get("error_code");
|
||||
const errorDescription = searchParams.get("error_description");
|
||||
|
||||
if (error || errorCode) {
|
||||
const isExpiredOrUsed =
|
||||
error === "access_denied" ||
|
||||
errorCode === "otp_expired" ||
|
||||
errorDescription?.toLowerCase().includes("expired") ||
|
||||
errorDescription?.toLowerCase().includes("already") ||
|
||||
errorDescription?.toLowerCase().includes("used");
|
||||
if (error || errorCode || errorDescription) {
|
||||
// Forward raw Supabase error params to the reset-password page,
|
||||
// which already handles classification (expired vs other errors)
|
||||
const params = new URLSearchParams();
|
||||
if (error) params.set("error", error);
|
||||
if (errorCode) params.set("error_code", errorCode);
|
||||
if (errorDescription) params.set("error_description", errorDescription);
|
||||
|
||||
const errorParam = isExpiredOrUsed
|
||||
? "link_expired"
|
||||
: encodeURIComponent(
|
||||
errorDescription || error || "Missing verification code",
|
||||
);
|
||||
|
||||
const redirectUrl = new URL(`${origin}/reset-password`);
|
||||
redirectUrl.searchParams.set("error", errorParam);
|
||||
if (errorCode) redirectUrl.searchParams.set("error_code", errorCode);
|
||||
if (errorDescription)
|
||||
redirectUrl.searchParams.set("error_description", errorDescription);
|
||||
|
||||
return NextResponse.redirect(redirectUrl.toString());
|
||||
return NextResponse.redirect(
|
||||
`${origin}/reset-password?${params.toString()}`,
|
||||
);
|
||||
}
|
||||
|
||||
return NextResponse.redirect(
|
||||
|
||||
Reference in New Issue
Block a user