@@ -69,7 +69,7 @@ export default defineEventHandler(async event => {
6969
7070 if ( ! query . code ) {
7171 // Validate returnTo is a safe relative path (prevent open redirect)
72- // Store in session on initial auth request, not the callback
72+ // Only set cookie on initial auth request, not the callback
7373 let redirectPath = '/'
7474 try {
7575 const clientOrigin = new URL ( clientUri ) . origin
@@ -81,7 +81,12 @@ export default defineEventHandler(async event => {
8181 // Invalid URL, fall back to root
8282 }
8383
84- await session . update ( { returnTo : redirectPath } )
84+ setCookie ( event , 'auth_return_to' , redirectPath , {
85+ maxAge : 60 * 5 ,
86+ httpOnly : true ,
87+ // secure only if NOT in dev mode
88+ secure : ! import . meta. dev ,
89+ } )
8590 try {
8691 const handle = query . handle ?. toString ( )
8792 const create = query . create ?. toString ( )
@@ -143,8 +148,8 @@ export default defineEventHandler(async event => {
143148 } )
144149 }
145150
146- const returnToURL = session . data . returnTo || '/'
147- await session . update ( { returnTo : undefined } )
151+ const returnToURL = getCookie ( event , 'auth_return_to' ) || '/'
152+ deleteCookie ( event , 'auth_return_to' )
148153
149154 return sendRedirect ( event , returnToURL )
150155} )
0 commit comments