web-dev-qa-db-fra.com

Déconnexion en utilisant le lien (sans nonce)

Cette question provient d’un non-codeur absolu - et a été posée sous diverses formes plusieurs fois (par exemple, ici ).

Pour vous déconnecter correctement de l’URL qui le déclenche, il faut un nonce comme par exemple:

http: //xyz/wp-login.php? action = déconnexion & redirect_to = http% 3A% 2F% 2Fwww.spiegel.de & _wpnonce = d9d1a28ef2

Nous pouvons obtenir le nonce décrit dans le codex. MAIS: si je dois déclencher une déconnexion, utilisez une URL. Plus précisément: mon plug-in CiviCRM contient des formulaires que les gens peuvent remplir et une fois remplis, laissez l'utilisateur rediriger ses messages ailleurs -> p. Ex. déconnectez-vous et allez à une autre page. Je peux copier/coller l'URL rediriger dans un formulaire tel que

http: //xyz/wp-login.php? action = déconnexion & redirect_to = http% 3A% 2F% 2Fwww.spiegel.de

-> comment puis-je obtenir le nonce où il est supposé aller - ou existe-t-il des alternatives ???

À votre santé!

Ceci désactivera la vérification de non-déconnexion pour la déconnexion - sur votre tête, que ce soit:

add_action( 'login_form_logout', function () {
    $user = wp_get_current_user();

    wp_logout();

    if ( ! empty( $_REQUEST['redirect_to'] ) ) {
        $redirect_to = $requested_redirect_to = $_REQUEST['redirect_to'];
    } else {
        $redirect_to = 'wp-login.php?loggedout=true';
        $requested_redirect_to = '';
    }

    /**
     * Filters the log out redirect URL.
     *
     * @since 4.2.0
     *
     * @param string  $redirect_to           The redirect destination URL.
     * @param string  $requested_redirect_to The requested redirect destination URL passed as a parameter.
     * @param WP_User $user                  The WP_User object for the user that's logging out.
     */
    $redirect_to = apply_filters( 'logout_redirect', $redirect_to, $requested_redirect_to, $user );
    wp_safe_redirect( $redirect_to );
    exit;
});
1
TheDeadMedic