diff --git a/server/config/settings/base.py b/server/config/settings/base.py index 68710668..e1500867 100644 --- a/server/config/settings/base.py +++ b/server/config/settings/base.py @@ -639,7 +639,7 @@ OAUTH_SIGNIN_REDIRECT_URI = env( "OAUTH_SIGNIN_REDIRECT_URI", default="http://localhost:8000/sso/callback" ) -OAUTH_LOGOUT_REDIRECT_URI = env("OAUTH_LOGOUT_REDIRECT_URI", default="") +OAUTH_LOGOUT_REDIRECT_URI = env("OAUTH_LOGOUT_REDIRECT_URI", default="/") OAUTH_SIGNIN_URL = env("OAUTH_SIGNIN_URL", default="") OAUTH_SIGNIN_REALM = env("OAUTH_SIGNIN_REALM", default="vbv") diff --git a/server/vbv_lernwelt/sso/views.py b/server/vbv_lernwelt/sso/views.py index bae5040b..686a5c04 100644 --- a/server/vbv_lernwelt/sso/views.py +++ b/server/vbv_lernwelt/sso/views.py @@ -143,7 +143,8 @@ def logout(request): id_token = user_data.get("id_token", "") if not id_token: logger.debug("SSO Logout", extra={"mode": "id_token_not_set"}) - return redirect(f"{redirect_uri}&client_id=iterativ") + url_param_symbol = "&" if "?" in redirect_uri else "?" + return redirect(f"{redirect_uri}{url_param_symbol}client_id=iterativ") # Handle scenarios when SSO-related data is present or redirect_uri is not set if not redirect_uri: