diff --git a/handlers.go b/handlers.go index ef881faa5..3af8286aa 100644 --- a/handlers.go +++ b/handlers.go @@ -326,9 +326,10 @@ func (r *oauthProxy) logoutHandler(w http.ResponseWriter, req *http.Request) { // @check if we should redirect to the provider if r.config.EnableLogoutRedirect { - sendTo := fmt.Sprintf("%s/protocol/openid-connect/logout?redirect_uri=%s", - strings.TrimSuffix(r.config.DiscoveryURL, "/.well-known/openid-configuration"), redirectURL) - + sendTo := fmt.Sprintf("%s/protocol/openid-connect/logout", strings.TrimSuffix(r.config.DiscoveryURL, "/.well-known/openid-configuration")) + if redirectURL != "" { + sendTo = fmt.Sprintf("%s?redirect_uri=%s", sendTo, url.QueryEscape(redirectURL)) + } r.redirectToURL(sendTo, w, req) return