Skip to main content

CookieOptions

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

property
string | { 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

property
string
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

property
string
default:
'/'

a string indicating the path of the cookie.

domain

property
string

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

property
boolean

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

secureProxy

property
boolean

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

property
boolean
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

property
boolean

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

property
boolean

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

property
v2.2.0
number

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

expires

property
v2.2.0
Date

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