SameSite=None Requires Secure: Cookie Fix Playbook

Resolve cross-site login/session failures caused by cookie attribute mismatch in modern browsers.

Modern browsers enforce stricter cookie policies. If you need cross-site cookies, SameSite=None must be paired with Secure over HTTPS.

Tools in this guide

Symptoms

  • Cross-site login appears successful but session is missing on next request.
  • Browser DevTools shows Set-Cookie dropped or blocked.
  • Issue appears only in HTTPS/browser path, not local mock calls.

Root Cause

  • SameSite=None is sent without Secure.
  • Cookie domain/path or expiry policy conflicts with runtime origin.
  • CORS and cookie policy are configured independently and drift apart.

Fix Steps

  1. Parse Set-Cookie string and verify SameSite, Secure, HttpOnly, Domain, Path attributes.
  2. If SameSite=None is required, enforce Secure and HTTPS consistently across environment.
  3. Revalidate with CORS headers and request flow so browser accepts and sends cookie.

Cross-site cookie baseline

Set-Cookie: sid=abc123; Path=/; HttpOnly; Secure; SameSite=None

FAQ

Can SameSite=None work without HTTPS?

In modern browsers, no. Secure is required.

Is SameSite=Lax enough for SPA auth?

Only for same-site flows. Cross-site auth usually needs None + Secure.