it-swarm.com.de

Mehrere Ajax Nonce-Anforderungen

Ich habe in meinem aktuellen Projekt eine Funktion, die mehrere Ajax-Anforderungen zulässt. Ich habe eine einzelne Nonce-Anforderung (über diese Anweisung ) ausgearbeitet, bin jedoch nicht sicher, wie ich in mehreren Nonce-Anforderungen vorgehen soll.

functions.php: lokalisiere, erstelle eine einzige Nonce

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

js anrufen:

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

empfangen von PHP

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

... sql, response

An diesem Punkt kann ich diese Nonce wiederholt verwenden, aber ich denke, dass dies den Zweck der Nonce-Prüfung zunichte macht. Meine Lösung wird darin bestehen, ein neues Nonce in der empfangenden PHP anzufordern, B99ajax js Objekt dieser Variablen zuzuweisen und es für die "nächste" Ajax-Sequenz zurück an die anfordernde Seite zu senden.

Gibt es einen besseren Weg?

5
Bosworth99

Dies ist im Grunde die Art und Weise, wie WordPress dies tut, und so ziemlich die einzige Art und Weise, dies zu tun. Lassen Sie einfach Ihre empfangende PHP -Funktion eine neue Nonce-Add erstellen, senden Sie sie mit Ihrer Antwort zurück und aktualisieren Sie dann einfach den Wert auf Ihrem JS vor der nächsten Runde.

2
Bainternet