Skip to content

SSO login with cross-domain fails on Firefox and Safari — works on Chrome only #1115

@normanaranez

Description

@normanaranez

Checklist

Description

Description

When users attempt to log in using a different domain (cross-domain SSO), the authentication flow works correctly on Chrome but silently fails on Firefox and Safari. This appears to be related to third-party cookie restrictions and ITP (Intelligent Tracking Prevention) enforced by these browsers.


Browser behavior

Browser Status Notes
Chrome ✅ Working SSO completes successfully
Firefox ❌ Broken SSO fails silently
Safari ❌ Broken SSO fails silently

Configuration

<Auth0Provider
  domain="YOUR_AUTH0_DOMAIN"
  clientId="YOUR_CLIENT_ID"
  authorizationParams={{
    redirect_uri: window.location.origin,
  }}
>
  <App />
</Auth0Provider>

Expected behavior

SSO should work consistently across all major browsers. A user authenticated on app.example.com should be recognized when visiting portal.otherdomain.com without needing to re-authenticate.

Actual behavior

Firefox and Safari block the third-party session cookie set by Auth0 due to privacy restrictions (ETP / ITP), causing the SSO check to fail. The user is redirected to the login page or gets stuck in a redirect loop.


Environment

Package:   @auth0/auth0-react
Version:   ^2.17.0
Browser:   Firefox Latest / Safari Latest
OS:        macOS / Windows
Framework: React 19.1.0

Reproduction


Steps to reproduce

  1. Configure Auth0Provider with a primary domain (e.g. app.example.com)
  2. Log in from a second domain (e.g. portal.otherdomain.com) that shares the same Auth0 tenant
  3. Open Firefox or Safari — ensure Enhanced Tracking Protection (Firefox) or ITP (Safari) is active
  4. Attempt the SSO login flow
  5. Observe: on Chrome the user is authenticated. On Firefox/Safari the session is not recognized and authentication fails or loops

Additional context

No response

auth0-react version

2.17.0

React version

19.1.0

Which browsers have you tested in?

Chrome

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions