Skip to content

Commit d366c32

Browse files
committed
Use normal request instead of nextrequest
1 parent ea95af2 commit d366c32

File tree

2 files changed

+13
-15
lines changed

2 files changed

+13
-15
lines changed

lib/ts/nextjs/middleware.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { enableLogging, logDebugMessage } from "../logger";
22

3-
import type { NextRequest, SuperTokensNextjsConfig, SuperTokensRequestToken } from "./types";
3+
import type { SuperTokensNextjsConfig, SuperTokensRequestToken } from "./types";
44

55
const ACCESS_TOKEN_COOKIE_NAME = "sAccessToken";
66
const ACCESS_TOKEN_HEADER_NAME = "st-access-token";
@@ -32,13 +32,14 @@ let AppInfo: SuperTokensNextjsConfig["appInfo"];
3232
// });
3333
// }
3434

35-
export async function refreshSession(config: SuperTokensNextjsConfig, request: NextRequest): Promise<Response> {
35+
export async function refreshSession(config: SuperTokensNextjsConfig, request: Request): Promise<Response> {
3636
AppInfo = config.appInfo;
3737
if (config.enableDebugLogs) {
3838
enableLogging();
3939
}
40+
console.log(request);
4041
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);
4243
if (!refreshToken) {
4344
logDebugMessage("Refresh token not found");
4445
return redirectToAuthPage(request);
@@ -52,7 +53,6 @@ export async function refreshSession(config: SuperTokensNextjsConfig, request: N
5253
logDebugMessage("Missing tokens from refresh response");
5354
return redirectToAuthPage(request);
5455
}
55-
5656
const currentUrl = new URL(request.url);
5757
const redirectUrl = new URL(currentUrl.searchParams.get("redirectTo") || "/", request.url);
5858
const finalResponse = new Response(null, {
@@ -91,7 +91,7 @@ export async function refreshSession(config: SuperTokensNextjsConfig, request: N
9191
}
9292
}
9393

94-
function redirectToAuthPage(request: NextRequest): Response {
94+
function redirectToAuthPage(request: Request): Response {
9595
const authPagePath = AppInfo.websiteBasePath || "/auth";
9696
const redirectUrl = new URL(authPagePath, request.url);
9797
logDebugMessage(`Redirecting to: ${redirectUrl}`);
@@ -154,3 +154,11 @@ async function fetchNewTokens(currentRefreshToken: string): Promise<{
154154

155155
return { accessToken, refreshToken, frontToken, antiCsrfToken };
156156
}
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+
}

lib/ts/nextjs/types.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,6 @@ export function isCookiesStore(obj: unknown): obj is CookiesStore {
2727
return typeof obj === "object" && obj !== null && "get" in obj && typeof (obj as CookiesStore).get === "function";
2828
}
2929

30-
export type NextRequest = Request & {
31-
cookies: CookiesStore;
32-
};
33-
34-
export type NextResponse = Response & {
35-
cookies: CookiesStore;
36-
redirect: (url: URL) => NextResponse;
37-
next: (opts?: { headers?: Record<string, string> }) => NextResponse;
38-
};
39-
4030
export type SuperTokensNextjsConfig = {
4131
appInfo: AppInfoUserInput;
4232
enableDebugLogs?: boolean;

0 commit comments

Comments
 (0)