From 04ea576792bf19dc88cba6c6427834290ab658f3 Mon Sep 17 00:00:00 2001 From: Henrik Wenz Date: Wed, 2 Nov 2022 11:29:39 +0100 Subject: [PATCH] Use new ResponseCookie API https://github.com/vercel/next.js/pull/41526 --- packages/next-auth/src/core/lib/cookie.ts | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/next-auth/src/core/lib/cookie.ts b/packages/next-auth/src/core/lib/cookie.ts index 3c75e001a6..f14426dc32 100644 --- a/packages/next-auth/src/core/lib/cookie.ts +++ b/packages/next-auth/src/core/lib/cookie.ts @@ -1,6 +1,7 @@ -import type { IncomingHttpHeaders } from "http" import type { CookiesOptions } from "../.." import type { CookieOption, LoggerInstance, SessionStrategy } from "../types" +import type { NextRequest } from "next/server" +import type { NextApiRequest } from "next" // Uncomment to recalculate the estimated size // of an empty session cookie @@ -128,10 +129,10 @@ export class SessionStore { constructor( option: CookieOption, - req: { - cookies?: Partial | Map> - headers?: Headers | IncomingHttpHeaders | Record - }, + req: Partial<{ + cookies: NextRequest["cookies"] | NextApiRequest["cookies"] + headers: NextRequest["headers"] | NextApiRequest["headers"] + }>, logger: LoggerInstance | Console ) { this.#logger = logger @@ -140,7 +141,14 @@ export class SessionStore { const { cookies } = req const { name: cookieName } = option - if (cookies instanceof Map) { + if (typeof cookies?.getAll === "function") { + // Next.js ^v13.0.1 (Edge Env) + for (const { name, value } of cookies.getAll()) { + if (name.startsWith(cookieName)) { + this.#chunks[name] = value + } + } + } else if (cookies instanceof Map) { for (const name of cookies.keys()) { if (name.startsWith(cookieName)) this.#chunks[name] = cookies.get(name) }