diff --git a/includes/openid-connect-generic-client-wrapper.php b/includes/openid-connect-generic-client-wrapper.php index e778970..e08f630 100644 --- a/includes/openid-connect-generic-client-wrapper.php +++ b/includes/openid-connect-generic-client-wrapper.php @@ -48,7 +48,7 @@ class OpenID_Connect_Generic_Client_Wrapper { // integrated logout if ( $settings->endpoint_end_session ) { add_filter( 'allowed_redirect_hosts', array( $client_wrapper, 'update_allowed_redirect_hosts' ), 99, 1 ); - add_filter( 'logout_redirect', array( $client_wrapper, 'get_end_session_logout_redirect_url' ), 99, 1 ); + add_filter( 'logout_redirect', array( $client_wrapper, 'get_end_session_logout_redirect_url' ), 99, 3 ); } // alter the requests according to settings @@ -211,7 +211,7 @@ class OpenID_Connect_Generic_Client_Wrapper { * * @return string */ - function get_end_session_logout_redirect_url( $redirect_url ) { + function get_end_session_logout_redirect_url( $redirect_url, $requested_redirect_to, $user ) { $url = $this->settings->endpoint_end_session; $query = parse_url( $url, PHP_URL_QUERY ); $url .= $query ? '&' : '?'; @@ -226,8 +226,7 @@ class OpenID_Connect_Generic_Client_Wrapper { $redirect_url = home_url( $redirect_url ); } - $user_id = wp_get_current_user()->ID; - $token_response = get_user_meta( $user_id, 'openid-connect-generic-last-token-response', true ); + $token_response = $user->get('openid-connect-generic-last-token-response'); $id_token_hint = $token_response['id_token']; $url .= 'id_token_hint='.$id_token_hint.'&post_logout_redirect_uri=' . urlencode( $redirect_url ); return $url;