buster/web/src/app/auth/confirm/route.ts

34 lines
958 B
TypeScript

import { type EmailOtpType } from '@supabase/supabase-js';
import { type NextRequest } from 'next/server';
import { createClient } from '@/lib/supabase/server';
import { redirect } from 'next/navigation';
export async function GET(request: NextRequest) {
const { searchParams } = new URL(request.url);
const token_hash = searchParams.get('token_hash');
const type = searchParams.get('type') as EmailOtpType | null;
const next = searchParams.get('next') ?? '/';
if (token_hash && type) {
const supabase = await createClient();
const { error } = await supabase.auth.verifyOtp({
type,
token_hash
});
if (!error) {
// redirect user to specified redirect URL or root of app
redirect(next);
return;
}
console.error(error);
}
console.error('NO TOKEN HASH OR TYPE', { token_hash, type });
// redirect the user to an error page with some instructions
redirect('/auth/auth-code-error');
}