User logs in to Identity Provider (Google, …) once
IdP creates a server-side session for the user
IdP issues session cookie + ID token to user browser
Set-Cookie: idp_session=xyz123; Path=/; Secure; HttpOnly; SameSite=Lax
User Accesses a Relying Party (other app that wants the user logged in like YouTube, …)
Relying Party redirects user to IdP authorization endpoint (like in OAuth/OIDC)
GET <https://idp.com/authorize>?
client_id=RP_CLIENT_ID
&redirect_uri=RP_CALLBACK
&scope=openid profile email
&response_type=code
Browser auto sends session cookie: idp_session=xyz123
IdP sees that the user is already logged in, then issues authorization code immediately
RP exchanges authorization code for:
User is logged in to RP
Set-Cookie:rp_session=abc789;Path=/;Secure;HttpOnly
idp_session → IdP login sessionrp_session → RP session