OAuth2 logout not working
Sometimes, calling /oauth2/sessions/logout
doesn't behave as expected, for example:
- An error occurs.
- You are being redirected directly to the post_logout_redirect_uri instead of the logout UI.
First of all, there are two types of logout requests - one is called "OP (OpenID Provider) Initiated" and one "RP (Relying Party)
Initiated". The first flow MUST NEITHER contain the id_token_hint
, nor a state
, nor post_logout_redirect_uri
.
If no active authentication session is set at Ory OAuth2 & OpenID Connect, the browser will be redirected immediately to the system-wide configured post logout redirect URI.
An active session may be missing because:
- You are using a Browser with a very strict privacy policy which makes it difficult or impossible for Ory to properly set cookies. We've observed that the Brave Browser may cause issues here.
- You didn't set
remember: true
when accepting the login request
Before filing a bug report, make sure you have a cookie named oauth2_authentication_session
for the URL Ory OAuth2 & OpenID
Connect is running on, and for the domain that's in your http://.../oauth2/sessions/logout
**
If id_token_hint
is set, you may define both state
and post_logout_redirect_uri
. The same problems can cause this flow to
behave unexpectedly as listed above, with the only difference that now Ory knows who the user to be logged out is (from the
id_token_hint
) and if any Front-/Back-channel Logout is configured for that client, it will be executed even if there is no
valid authentication session for that user in Ory.