Skip to content

Commit 1dddd67

Browse files
moved refresh to options object
1 parent a789e93 commit 1dddd67

File tree

1 file changed

+24
-14
lines changed

1 file changed

+24
-14
lines changed

src/server/client.ts

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { IncomingMessage, ServerResponse } from "node:http";
1+
import { IncomingMessage, type ServerResponse } from "node:http";
22
import { cookies } from "next/headers";
33
import { NextRequest, NextResponse } from "next/server";
44
import { NextApiRequest, NextApiResponse } from "next/types";
@@ -175,6 +175,13 @@ export type PagesRouterResponse =
175175
| ServerResponse<IncomingMessage>
176176
| NextApiResponse;
177177

178+
export type GetAccessTokenOptions = {
179+
/**
180+
* Force a refresh of the access token.
181+
*/
182+
refresh?: boolean;
183+
};
184+
178185
export class Auth0Client {
179186
private transactionStore: TransactionStore;
180187
private sessionStore: AbstractSessionStore;
@@ -316,8 +323,8 @@ export class Auth0Client {
316323
* It is recommended to call `getAccessToken(req, res)` in the middleware if you need to retrieve the access token in a Server Component to ensure the updated token set is persisted.
317324
*/
318325
async getAccessToken(
319-
refresh?: boolean
320-
): Promise<{ token: string; expiresAt: number }>;
326+
options?: GetAccessTokenOptions
327+
): Promise<{ token: string; expiresAt: number; scope?: string }>;
321328

322329
/**
323330
* getAccessToken returns the access token.
@@ -327,29 +334,32 @@ export class Auth0Client {
327334
async getAccessToken(
328335
req: PagesRouterRequest | NextRequest,
329336
res: PagesRouterResponse | NextResponse,
330-
refresh?: boolean
331-
): Promise<{ token: string; expiresAt: number }>;
337+
options?: GetAccessTokenOptions
338+
): Promise<{ token: string; expiresAt: number; scope?: string }>;
332339

333340
/**
334341
* getAccessToken returns the access token.
335342
*/
336343
async getAccessToken(
337-
reqOrRefresh?: PagesRouterRequest | NextRequest | boolean,
344+
reqOrOptions?: PagesRouterRequest | NextRequest | GetAccessTokenOptions,
338345
res?: PagesRouterResponse | NextResponse,
339-
refresh?: boolean
346+
options?: GetAccessTokenOptions
340347
): Promise<{ token: string; expiresAt: number; scope?: string }> {
341348
// Parameter type handling
342349
let req: PagesRouterRequest | NextRequest | undefined;
343350
let actualForceRefresh: boolean | undefined;
344351

345-
// Check if the first parameter is a request object or a boolean
346-
if (typeof reqOrRefresh === "boolean" || reqOrRefresh === undefined) {
347-
// App Router case (forceRefresh as first param)
348-
actualForceRefresh = reqOrRefresh as boolean | undefined;
349-
} else {
352+
// Check if the first parameter is a request object or an options object
353+
if (
354+
reqOrOptions instanceof IncomingMessage ||
355+
reqOrOptions instanceof NextRequest
356+
) {
350357
// Pages Router case (req/res as first params)
351-
req = reqOrRefresh;
352-
actualForceRefresh = refresh;
358+
req = reqOrOptions;
359+
actualForceRefresh = options?.refresh;
360+
} else {
361+
// App Router case (options as first param)
362+
actualForceRefresh = (reqOrOptions as GetAccessTokenOptions)?.refresh;
353363
}
354364

355365
const session: SessionData | null = req

0 commit comments

Comments
 (0)