Skip to main content

CookieOptions

Options for the handling of the cookies used to track sessions (only applicable if authOptions.tokenMethod is set to 'cookie'). These options are passed directly to the Express cookie-session middleware.

Signature
interface CookieOptions {    name?: string | { shop: string; admin: string };    secret?: string;    path?: string;    domain?: string;    sameSite?: 'strict' | 'lax' | 'none' | boolean;    secure?: boolean;    secureProxy?: boolean;    httpOnly?: boolean;    signed?: boolean;    overwrite?: boolean;    maxAge?: number;    expires?: Date;}

name

propertystring | { shop: string; admin: string }
Default:'session'

The name of the cookies to set. If set to a string, both cookies for the Admin API and Shop API will have the same name. If set as an object, it makes it possible to give different names to the Admin API and the Shop API cookies

secret

propertystring
Default:(random character string)

The secret used for signing the session cookies for authenticated users. Only applies tokenMethod is set to 'cookie'.

In production applications, this should not be stored as a string in source control for security reasons, but may be loaded from an external file not under source control, or from an environment variable, for example.

path

propertystring
Default:'/'

a string indicating the path of the cookie.

domain

propertystring

a string indicating the domain of the cookie (no default).

sameSite

property'strict' | 'lax' | 'none' | boolean
Default:false

a boolean or string indicating whether the cookie is a "same site" cookie (false by default). This can be set to 'strict', 'lax', 'none', or true (which maps to 'strict').

secure

propertyboolean

a boolean indicating whether the cookie is only to be sent over HTTPS (false by default for HTTP, true by default for HTTPS).

secureProxy

propertyboolean

a boolean indicating whether the cookie is only to be sent over HTTPS (use this if you handle SSL not in your node process).

httpOnly

propertyboolean
Default:true

a boolean indicating whether the cookie is only to be sent over HTTP(S), and not made available to client JavaScript (true by default).

signed

propertyboolean

a boolean indicating whether the cookie is to be signed (true by default). If this is true, another cookie of the same name with the .sig suffix appended will also be sent, with a 27-byte url-safe base64 SHA1 value representing the hash of cookie-name=cookie-value against the first Keygrip key. This signature key is used to detect tampering the next time a cookie is received.

overwrite

propertyboolean

a boolean indicating whether to overwrite previously set cookies of the same name (true by default). If this is true, all cookies set during the same request with the same name (regardless of path or domain) are filtered out of the Set-Cookie header when setting this cookie.

maxAge

propertynumberv2.2.0

A number representing the milliseconds from Date.now() for expiry

expires

propertyDatev2.2.0

a Date object indicating the cookie's expiration date (expires at the end of session by default).

Was this chapter helpful?
Report Issue
Edited Feb 3, 2026·Edit this page