From aa52de569b505cd9e7c36652adbed9174c246374 Mon Sep 17 00:00:00 2001 From: Tom Spencer Date: Mon, 18 Nov 2019 22:13:48 +0000 Subject: [PATCH] Updated express-session types (#40314) - Allow `secure: 'auto'` cookie setting - Restrict `sameSite` cookie setting to boolean or valid string value according to (draft) spec --- types/express-session/express-session-tests.ts | 16 ++++++++++++++++ types/express-session/index.d.ts | 13 ++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/types/express-session/express-session-tests.ts b/types/express-session/express-session-tests.ts index 24a2e8bab0..925d7d12c2 100644 --- a/types/express-session/express-session-tests.ts +++ b/types/express-session/express-session-tests.ts @@ -7,6 +7,22 @@ app.use(session({ secret: 'keyboard cat', cookie: { secure: true } })); +app.use(session({ + secret: 'keyboard cat', + cookie: { secure: 'auto' } +})); +app.use(session({ + secret: 'keyboard cat', + cookie: { sameSite: 'none' } +})); +app.use(session({ + secret: 'keyboard cat', + cookie: { sameSite: 'lax' } +})); +app.use(session({ + secret: 'keyboard cat', + cookie: { sameSite: 'strict' } +})); app.use(session({ secret: 'keyboard cat', name: 'connect.sid', diff --git a/types/express-session/index.d.ts b/types/express-session/index.d.ts index dc5f5601df..9dd2ef206e 100644 --- a/types/express-session/index.d.ts +++ b/types/express-session/index.d.ts @@ -4,6 +4,7 @@ // Jacob Bogers // Naoto Yokoyama // Ryan Cannon +// Tom Spencer // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 @@ -58,7 +59,17 @@ declare namespace session { secret: string | string[]; name?: string; store?: Store | MemoryStore; - cookie?: express.CookieOptions; + cookie?: { + maxAge?: number; + signed?: boolean; + expires?: Date; + httpOnly?: boolean; + path?: string; + domain?: string; + secure?: boolean | 'auto'; + encode?: (val: string) => string; + sameSite?: boolean | 'lax' | 'strict' | 'none'; + }; genid?(req: express.Request): string; rolling?: boolean; resave?: boolean;