Фатальная ошибка: Uncaught ошибка: Call to member function getToken () on null


class Token {

    public $token;

    public function __construct(var_dump) {
        $this->token = $token;
    }

    public function getToken() {
        return bin2hex(random_bytes(64)); //Generates new token when activating the plugin
    }
}

add_action('rest_api_init', function () {

    $token = new Token();

    function validate() {
        $status = http_response_code();
        if($status == 200) {
            header("Access-Control-Allow-Origin: http://localhost:8080/wordpress_pruebas/");
            header("Content-Type: application/json;");
            if ($token->getToken() == get_option('tokens_settings').[1]) {
                return new WP_REST_Response( array(
                    'message' => 'Access Successfully',
                    'version' => 1.0
                ),
                $status ); // Ok
            } else {
            return new WP_REST_Response( array(
                'message' => 'Access Failed',
                'version' => 1.0
            ),
            $status ); // Error
            }
        }
    }
    register_rest_route( 'authtoken', '/info', array(
        'methods' => 'GET',
        'callback' => 'validate'
        )
    );
});
Author: JDev, 2019-03-29

1 answers

$token он невидим для вашей функции validate, поскольку он определен снаружи и недоступен для нее.

Измените свой validate на это

    function validate() {
        $status = http_response_code();
        if($status == 200) {
            header("Access-Control-Allow-Origin: http://localhost:8080/wordpress_pruebas/");
            header("Content-Type: application/json;");
             $token = new Token();
            if ($token->getToken() == get_option('tokens_settings').[1]) {
                return new WP_REST_Response( array(
                    'message' => 'Access Successfully',
                    'version' => 1.0
                ),
                $status ); // Ok
            } else {
            return new WP_REST_Response( array(
                'message' => 'Access Failed',
                'version' => 1.0
            ),
            $status ); // Error
            }
        }
    }
 4
Author: JDev, 2019-03-29 12:19:45