Skip to content

Commit 4304529

Browse files
authored
localhost is also a secure origin by browsers
Also partitioned cookies are only allowed with secure, so in `secure: 'auto'` also set partitioned to false
1 parent 76d3d85 commit 4304529

2 files changed

Lines changed: 3 additions & 2 deletions

File tree

lib/cookie.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@ module.exports = class Cookie {
2525
}
2626

2727
if (this.secure === 'auto') {
28-
if (request.protocol === 'https') {
28+
if (request.protocol === 'https' || request.hostname === 'localhost') {
2929
this.secure = true
3030
} else {
3131
this.sameSite = 'lax'
32+
this.partitioned = false
3233
this.secure = false
3334
}
3435
}

lib/fastifySession.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ function fastifySession (fastify, options, next) {
166166

167167
const cookieSessionId = getCookieSessionId(request)
168168
const saveSession = shouldSaveSession(request, cookieSessionId, saveUninitializedSession, rollingSessions)
169-
const isInsecureConnection = cookieOpts.secure === true && request.protocol !== 'https'
169+
const isInsecureConnection = cookieOpts.secure === true && request.protocol !== 'https' && request.hostname !== 'localhost'
170170
const sessionIdWithPrefix = hasCookiePrefix ? `${cookiePrefix}${session.encryptedSessionId}` : session.encryptedSessionId
171171
if (!saveSession || isInsecureConnection) {
172172
// if a session cookie is set, but has a different ID, clear it

0 commit comments

Comments
 (0)