1
1
import { enableLogging , logDebugMessage } from "../logger" ;
2
2
3
- import type { NextRequest , SuperTokensNextjsConfig , SuperTokensRequestToken } from "./types" ;
3
+ import type { SuperTokensNextjsConfig , SuperTokensRequestToken } from "./types" ;
4
4
5
5
const ACCESS_TOKEN_COOKIE_NAME = "sAccessToken" ;
6
6
const ACCESS_TOKEN_HEADER_NAME = "st-access-token" ;
@@ -32,13 +32,14 @@ let AppInfo: SuperTokensNextjsConfig["appInfo"];
32
32
// });
33
33
// }
34
34
35
- export async function refreshSession ( config : SuperTokensNextjsConfig , request : NextRequest ) : Promise < Response > {
35
+ export async function refreshSession ( config : SuperTokensNextjsConfig , request : Request ) : Promise < Response > {
36
36
AppInfo = config . appInfo ;
37
37
if ( config . enableDebugLogs ) {
38
38
enableLogging ( ) ;
39
39
}
40
+ console . log ( request ) ;
40
41
const refreshToken =
41
- request . cookies . get ( REFRESH_TOKEN_COOKIE_NAME ) ?. value || request . headers . get ( REFRESH_TOKEN_HEADER_NAME ) ;
42
+ getCookie ( request , REFRESH_TOKEN_COOKIE_NAME ) || request . headers . get ( REFRESH_TOKEN_HEADER_NAME ) ;
42
43
if ( ! refreshToken ) {
43
44
logDebugMessage ( "Refresh token not found" ) ;
44
45
return redirectToAuthPage ( request ) ;
@@ -52,7 +53,6 @@ export async function refreshSession(config: SuperTokensNextjsConfig, request: N
52
53
logDebugMessage ( "Missing tokens from refresh response" ) ;
53
54
return redirectToAuthPage ( request ) ;
54
55
}
55
-
56
56
const currentUrl = new URL ( request . url ) ;
57
57
const redirectUrl = new URL ( currentUrl . searchParams . get ( "redirectTo" ) || "/" , request . url ) ;
58
58
const finalResponse = new Response ( null , {
@@ -91,7 +91,7 @@ export async function refreshSession(config: SuperTokensNextjsConfig, request: N
91
91
}
92
92
}
93
93
94
- function redirectToAuthPage ( request : NextRequest ) : Response {
94
+ function redirectToAuthPage ( request : Request ) : Response {
95
95
const authPagePath = AppInfo . websiteBasePath || "/auth" ;
96
96
const redirectUrl = new URL ( authPagePath , request . url ) ;
97
97
logDebugMessage ( `Redirecting to: ${ redirectUrl } ` ) ;
@@ -154,3 +154,11 @@ async function fetchNewTokens(currentRefreshToken: string): Promise<{
154
154
155
155
return { accessToken, refreshToken, frontToken, antiCsrfToken } ;
156
156
}
157
+
158
+ function getCookie ( request : Request , name : string ) {
159
+ return request . headers
160
+ . get ( "cookie" )
161
+ ?. split ( "; " )
162
+ . find ( ( row ) => row . startsWith ( `${ name } =` ) )
163
+ ?. split ( "=" ) [ 1 ] ;
164
+ }
0 commit comments