Skip to content

Commit 074478e

Browse files
authored
fix(cookie): add deprecated options alias for backward compatibility (#8139)
1 parent 1892ca3 commit 074478e

File tree

2 files changed

+26
-12
lines changed

2 files changed

+26
-12
lines changed

packages/better-auth/src/cookies/index.ts

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -63,18 +63,21 @@ export function createCookieGetter(options: BetterAuthOptions) {
6363
const attributes =
6464
options.advanced?.cookies?.[cookieName as "session_token"]?.attributes;
6565

66+
const resolvedAttributes: CookieOptions = {
67+
secure: !!secureCookiePrefix,
68+
sameSite: "lax",
69+
path: "/",
70+
httpOnly: true,
71+
...(crossSubdomainEnabled ? { domain } : {}),
72+
...options.advanced?.defaultCookieAttributes,
73+
...overrideAttributes,
74+
...attributes,
75+
};
76+
6677
return {
6778
name: `${secureCookiePrefix}${name}`,
68-
attributes: {
69-
secure: !!secureCookiePrefix,
70-
sameSite: "lax",
71-
path: "/",
72-
httpOnly: true,
73-
...(crossSubdomainEnabled ? { domain } : {}),
74-
...options.advanced?.defaultCookieAttributes,
75-
...overrideAttributes,
76-
...attributes,
77-
},
79+
attributes: resolvedAttributes,
80+
options: resolvedAttributes,
7881
} satisfies BetterAuthCookie;
7982
}
8083
return createCookie;
@@ -97,6 +100,7 @@ export function getCookies(options: BetterAuthOptions) {
97100
sessionToken: {
98101
name: sessionToken.name,
99102
attributes: sessionToken.attributes,
103+
options: sessionToken.attributes,
100104
},
101105
/**
102106
* This cookie is used to store the session data in the cookie
@@ -105,14 +109,17 @@ export function getCookies(options: BetterAuthOptions) {
105109
sessionData: {
106110
name: sessionData.name,
107111
attributes: sessionData.attributes,
112+
options: sessionData.attributes,
108113
},
109114
dontRememberToken: {
110115
name: dontRememberToken.name,
111116
attributes: dontRememberToken.attributes,
117+
options: dontRememberToken.attributes,
112118
},
113119
accountData: {
114120
name: accountData.name,
115121
attributes: accountData.attributes,
122+
options: accountData.attributes,
116123
},
117124
};
118125
}
@@ -283,7 +290,7 @@ export async function setSessionCookie(
283290
*/
284291
export function expireCookie(
285292
ctx: GenericEndpointContext,
286-
cookie: BetterAuthCookie,
293+
cookie: Pick<BetterAuthCookie, "name" | "attributes">,
287294
) {
288295
ctx.setCookie(cookie.name, "", {
289296
...cookie.attributes,

packages/core/src/types/cookie.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
import type { CookieOptions } from "better-call";
22

3-
export type BetterAuthCookie = { name: string; attributes: CookieOptions };
3+
export type BetterAuthCookie = {
4+
name: string;
5+
attributes: CookieOptions;
6+
/**
7+
* @deprecated Use `attributes` instead. This alias is kept for backward compatibility.
8+
*/
9+
options: CookieOptions;
10+
};
411

512
export type BetterAuthCookies = {
613
sessionToken: BetterAuthCookie;

0 commit comments

Comments
 (0)