Как использовать WP-REST API для авторизации пользователя и получения данных пользователя для Android-приложения?
Я хочу использовать WordPress REST API для авторизации и получения пользовательских данных в android приложении.
Я использую таблицу wp_users для пользователей и отдельную пользовательскую таблицу для информации о пользователях.
Я пытался написать свой собственный REST API, но для этого мне нужно сделать $wpdb доступным за пределами установки WordPress.
Пожалуйста, предоставьте ваше решение, включающее также функционал API-KEY или что-то подобное.
Спасибо

Я нашел самое простое решение с использованием плагина WP-REST API. Сначала настройте это в вашей среде:
1.) В файле темы functions.php
зарегистрируйте хуки для конечных точек API:
add_action( 'rest_api_init', 'register_api_hooks' );
// Пользовательские конечные точки API для WP-REST API
function register_api_hooks() {
register_rest_route(
'custom-plugin', '/login/',
array(
'methods' => 'POST',
'callback' => 'login',
)
);
function login() {
$output = array();
// Ваша логика здесь.
return $output;
}
2.) По умолчанию, если у вас включены читаемые постоянные ссылки, WordPress REST API "живет" по адресу /wp-json/. Тогда конечная точка API будет доступна по адресу youdomain.com/wp-json/custom-plugin/login
с запросом типа POST
.
Обратите внимание, что custom-plugin/login фактически определен в register_rest_route в PHP-функции register_api_hooks()
Для API-ключа я использую WordPress Nonces - довольно просто, как описано в моем обсуждении здесь. Надеюсь, эти ответы будут полезны всем full stack разработчикам, которые только начинают работать с WordPress REST API.

Если вам нужно просто авторизовать пользователя и получить его данные, вы можете использовать отличный плагин под названием "JSON API AUTH"
https://wordpress.org/plugins/json-api-auth/
Доступны следующие методы: validate_auth_cookie
, generate_auth_cookie
, clear_auth_cookie
, get_currentuserinfo
Nonce можно создать, вызвав http://localhost/api/get_nonce/?controller=auth&method=generate_auth_cookie
Затем вы можете использовать значение 'nonce' для генерации cookie: http://localhost/api/auth/generate_auth_cookie/?nonce=f4320f4a67&username=Catherine&password=password-here
Используйте cookie следующим образом при вызовах других контроллеров: http://localhost/api/contoller-name/method-name/?cookie=Catherine|1392018917|3ad7b9f1c5c2cccb569c8a82119ca4fd
