web-dev-qa-db-ja.com

複数のajax nonceリクエスト

私は現在のプロジェクトで複数のajaxリクエストを許可する機能を持っています - 私は単一のnonceリクエストを( this tute 経由で)完成させましたが、複数のnonceリクエストをどのように理解するかはやや不明です。

functions.php:ローカライズ、単一のノンスを作成

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

jsを呼び出す:

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

受信php

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

... sql, response

この時点で、このnonceを繰り返し再利用することができますが、nonceチェックの目的は無効になると思います。私の解決策は、受信側のphpで新しい一回だけを要求し、その変数にB99ajax jsオブジェクトを割り当て、そしてそれを "次の" ajaxシーケンスのために要求しているページに送り返すことです。

もっと良い方法はありますか?

5
Bosworth99

それは基本的にはWordPressが行う方法であり、それを実行するためのほとんどの唯一の方法です。単に受信側のPHP関数に新しいnonce addを作成してもらい、応答を返してください。次のラウンドの前に。

2
Bainternet