@@ -5,28 +5,36 @@ import { useAuthSession } from "~/context/auth.session"
55
66export async function GET ( input : APIEvent ) {
77 const url = new URL ( input . request . url )
8- const code = url . searchParams . get ( "code" )
9- if ( ! code ) throw new Error ( "No code found ")
10- const result = await AuthClient . exchange ( code , ` ${ url . origin } ${ url . pathname } ` )
11- if ( result . err ) {
12- throw new Error ( result . err . message )
13- }
14- const decoded = AuthClient . decode ( result . tokens . access , { } as any )
15- if ( decoded . err ) throw new Error ( decoded . err . message )
16- const session = await useAuthSession ( )
17- const id = decoded . subject . properties . accountID
18- await session . update ( ( value ) => {
19- return {
20- ... value ,
21- account : {
22- ... value . account ,
23- [ id ] : {
24- id ,
25- email : decoded . subject . properties . email ,
8+ try {
9+ const code = url . searchParams . get ( " code")
10+ if ( ! code ) throw new Error ( "No code found" )
11+ const result = await AuthClient . exchange ( code , ` ${ url . origin } ${ url . pathname } ` )
12+ if ( result . err ) throw new Error ( result . err . message )
13+ const decoded = AuthClient . decode ( result . tokens . access , { } as any )
14+ if ( decoded . err ) throw new Error ( decoded . err . message )
15+ const session = await useAuthSession ( )
16+ const id = decoded . subject . properties . accountID
17+ await session . update ( ( value ) => {
18+ return {
19+ ... value ,
20+ account : {
21+ ... value . account ,
22+ [ id ] : {
23+ id ,
24+ email : decoded . subject . properties . email ,
25+ } ,
2626 } ,
27- } ,
28- current : id ,
29- }
30- } )
31- return redirect ( "/auth" )
27+ current : id ,
28+ }
29+ } )
30+ return redirect ( "/auth" )
31+ } catch ( e : any ) {
32+ return new Response (
33+ JSON . stringify ( {
34+ error : e . message ,
35+ cause : Object . fromEntries ( url . searchParams . entries ( ) ) ,
36+ } ) ,
37+ { status : 500 } ,
38+ )
39+ }
3240}
0 commit comments