Как использовать WP-REST API для авторизации пользователя и получения данных пользователя для Android-приложения?

15 апр. 2016 г., 10:56:06
Просмотры: 49.3K
Голосов: 13

Я хочу использовать WordPress REST API для авторизации и получения пользовательских данных в android приложении.

Я использую таблицу wp_users для пользователей и отдельную пользовательскую таблицу для информации о пользователях.

Я пытался написать свой собственный REST API, но для этого мне нужно сделать $wpdb доступным за пределами установки WordPress.

Пожалуйста, предоставьте ваше решение, включающее также функционал API-KEY или что-то подобное.

Спасибо

4
Комментарии

Вы нашли решение?

Mithun Sarker Mithun Sarker
18 мая 2016 г. 09:12:33

@shuvro, да, у меня есть решение, пожалуйста, проверьте мой ответ. Удачи с вашим продуктом

Divyanshu Jimmy Divyanshu Jimmy
19 мая 2016 г. 10:35:05

Вы читали этот пост на make?

kaiser kaiser
23 окт. 2016 г. 16:10:33

Твой решение было отличным, но пароли в WordPress хэшируются :/ Как ты вошел в систему?

Daniyal Javaid Daniyal Javaid
26 июл. 2018 г. 22:09:55
Все ответы на вопрос 2
2

Я нашел самое простое решение с использованием плагина 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.

19 мая 2016 г. 10:34:36
Комментарии

кто-нибудь ищет этот файл functions.php? Вот он -> wordpress\wp-content\themes\themeName\functions.php

Daniyal Javaid Daniyal Javaid
26 июл. 2018 г. 21:55:37

Похоже, что эта функция входа ничего не делает, что должно быть вместо // Your logic goes here ?

conor909 conor909
2 дек. 2020 г. 21:51:16
0

Если вам нужно просто авторизовать пользователя и получить его данные, вы можете использовать отличный плагин под названием "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

12 авг. 2017 г. 08:32:33