File tree Expand file tree Collapse file tree 1 file changed +19
-8
lines changed
frontend/src/app/auth/signin Expand file tree Collapse file tree 1 file changed +19
-8
lines changed Original file line number Diff line number Diff line change @@ -6,26 +6,37 @@ import { generateSessionCsrfToken } from '@utils/csrf-utils';
66import { NextRequest , NextResponse } from 'next/server' ;
77
88export const GET = async ( request : NextRequest ) => {
9- const url = request . nextUrl . clone ( ) ;
10-
119 const sessionId = await getSessionId ( ) ;
1210 const cookieStore = await cookies ( ) ;
1311
12+ let redirectPath =
13+ `/${ request . nextUrl . searchParams . get ( 'redirect' ) ?? '/templates/manage-templates' } ` . replace (
14+ / ^ \/ + / ,
15+ '/'
16+ ) ;
17+
1418 if ( sessionId ) {
1519 const csrfToken = await generateSessionCsrfToken ( sessionId ) ;
1620
1721 cookieStore . set ( 'csrf_token' , csrfToken , {
1822 sameSite : 'strict' ,
1923 secure : true ,
2024 } ) ;
21-
22- const redirectPath = request . nextUrl . searchParams . get ( 'redirect' ) ?? '/' ;
23- url . pathname = redirectPath ;
24- url . searchParams . delete ( 'redirect' ) ;
2525 } else {
26- url . pathname = '/auth' ;
2726 cookieStore . delete ( 'csrf_token' ) ;
27+ redirectPath = '/auth' ;
28+
29+ const redirectParam = request . nextUrl . searchParams . get ( 'redirect' ) ;
30+
31+ if ( redirectParam ) {
32+ redirectPath += `?redirect=${ encodeURIComponent ( redirectParam ) } ` ;
33+ }
2834 }
2935
30- return NextResponse . redirect ( url ) ;
36+ return NextResponse . json ( null , {
37+ status : 307 ,
38+ headers : {
39+ Location : redirectPath ,
40+ } ,
41+ } ) ;
3142} ;
You can’t perform that action at this time.
0 commit comments