diff --git a/lib/oauth/cookie-config.ts b/lib/oauth/cookie-config.ts index 3ef4b9b4..5e111a42 100644 --- a/lib/oauth/cookie-config.ts +++ b/lib/oauth/cookie-config.ts @@ -1,9 +1,12 @@ const COOKIE_SAME_SITE = (process.env.COOKIE_SAME_SITE || 'lax') as 'lax' | 'none' | 'strict'; +const COOKIE_SECURE = process.env.COOKIE_SECURE !== undefined + ? process.env.COOKIE_SECURE === 'true' + : (COOKIE_SAME_SITE === 'none' || process.env.NODE_ENV === 'production'); export function getCookieOptions() { return { httpOnly: true, - secure: COOKIE_SAME_SITE === 'none' || process.env.NODE_ENV === 'production', + secure: COOKIE_SECURE, sameSite: COOKIE_SAME_SITE, path: '/', maxAge: 30 * 24 * 60 * 60, diff --git a/lib/oauth/tokens.ts b/lib/oauth/tokens.ts index 5f05e9d3..6545bab0 100644 --- a/lib/oauth/tokens.ts +++ b/lib/oauth/tokens.ts @@ -1,4 +1,6 @@ -export const OAUTH_SCOPES = 'openid email profile'; +const DEFAULT_SCOPES = 'openid email profile'; +const EXTRA_SCOPES = process.env.OAUTH_EXTRA_SCOPES || ''; +export const OAUTH_SCOPES = process.env.OAUTH_SCOPES || (EXTRA_SCOPES ? `${DEFAULT_SCOPES} ${EXTRA_SCOPES}`.trim() : DEFAULT_SCOPES); export const REFRESH_TOKEN_COOKIE = 'jmap_rt'; /** Get the cookie name for a given account slot (0-4). Slot 0 uses the legacy name. */