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?
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.