web-dev-qa-db-fra.com

Plusieurs demandes ajax nonce

Dans mon projet actuel, une fonctionnalité autorisera plusieurs requêtes ajax - une seule requête de nonce a été élaborée (via this tute ), mais je ne sais pas trop comment figurer dans plusieurs requêtes de nonce.

functions.php: localiser, créer un seul nonce

 wp_localize_script( 
      'B99-Portfolio', 
      'B99ajax', 
      array( 
           'ajaxurl'        => admin_url( 'admin-ajax.php' ),
           'requestNonce'   => wp_create_nonce('b99-request-nonce') 
      )
 );

appelant js:

$.ajax({
        type    : 'POST',
        url     : B99ajax.ajaxurl,
        data    : {
            action          : 'b99-ajax-submit',
            requestNonce    : B99ajax.requestNonce
        },...

recevoir php

public function b99_ajax_submit() {
        $nonce = $_POST['requestNonce'];
        if ( ! wp_verify_nonce( $nonce, 'b99-request-nonce' ) )

... sql, response

À ce stade, je peux réutiliser ce nonce à plusieurs reprises, mais je pense que cela va à l'encontre de l'objectif du contrôle de nonce. Ma solution sera de demander un nouveau nonce dans le php de réception, d'affecter l'objet B99ajax js à cette variable et de le renvoyer à la page de demande pour la séquence "suivante" ajax.

Y a-t-il un meilleur moyen?

5
Bosworth99

C’est essentiellement ainsi que WordPress le fait et pratiquement le seul moyen de le faire. Il suffit de laisser votre fonction de réception PHP créer un nouveau compte nonce add le renvoyer avec votre réponse, puis de mettre à jour la valeur de votre JS. avant le prochain tour.

2
Bainternet