WP REST API: проверьте, зарегистрирован ли пользователь

Идея состоит в том, чтобы показать или скрыть некоторые разделы сайта в теме, которая извлекает все данные из REST API, используя AngularJS.

Я думал, что эта проверка поможет мне (nonce передается как заголовок, как это было предложено в документах):

wp_localize_script('angularjs', 'params', array( 'nonce' => wp_create_nonce('wp_rest'), 'nonce_verify' => wp_verify_nonce($_REQUEST['X-WP-Nonce'], 'wp_rest') )); 

Параметр nonce работает, и я могу передать его в виде заголовка запроса через AngularJS, успешно выполнив вход в систему. Но nonce_verify не ожидал.

Итак, вопрос: есть ли способ проверить, зарегистрирован ли пользователь при использовании проверки файлов cookie? Спасибо.

EDIT: Я локализовал значение nonce, потому что мне нужно было получить его в этом фрагменте кода angularJS. Вот где происходит аут:

 $httpProvider.interceptors.push(function () { return { 'request' : function (config) { config.headers = config.headers || {}; config.headers['X-WP-Nonce'] = params.nonce; return config; } } }); 

Solutions Collecting From Web of "WP REST API: проверьте, зарегистрирован ли пользователь"

Вы не должны передавать свой nonce на свой JavaScript, чтобы проверить его, так как скрипты на стороне клиента можно легко манипулировать. Вместо этого вы должны получить nonce из своего front-end контента, а затем передать его на сервер, чтобы проверить его.

После проверки вы должны решить вывести контент по серверу , а не по вашему файлу JavaScript .

Что-то вроде этого:

 if ( is_user_logged_in() ) { if ( wp_verify_nonce($_REQUEST['X-WP-Nonce'], 'wp_rest') { // Nonce is correct! } else { // Don't send the data, it's a trap! } } 

В качестве дополнительной заметки REST API предлагает собственный метод для получения переданных запросов. Таким образом, вы можете получить его таким образом в своей функции обратного вызова:

 function foobar( \WP_REST_Request $request ) { $nonce = $request['X-WP-Nonce']; }