Проверка подлинности Wordpress JWT не защищает пользовательские конечные точки - PullRequest
0 голосов
/ 11 декабря 2018

Я установил JWT-плагин , и он в основном работает: я делаю POST-запрос к [mypage] / wp-json / jwt-auth / v1 / token и я получаю верный JSON, содержащий токен.Таким образом, плагин, кажется, установлен правильно.

Затем я попробовал другую конечную точку: [mypage] /? Rest_route = / wp / v2 / users / register и ожидаетсязапрос (без заголовка авторизации) на отклоняется плагином JWT, поскольку в документации упоминается:

wp-api-jwt-auth будет перехватывать каждый вызов сервера ибудет искать заголовок авторизации, если заголовок авторизации присутствует, он попытается декодировать токен и установит пользователя в соответствии с данными, хранящимися в нем.

Но, к моему удивлению, запросработал!

Вот так на сервере настраивается конечная точка:

register_rest_route('wp/v2', 'users/register', array(
'methods' => 'POST',
'callback' => 'wc_rest_user_reg_ep_handler',
));

Я думал, что все конечные точки защищены плагином JWT?

Я читал о разрешении_callback, ноЯ думаю, что это просто метод для проверки прав доступа пользователей.Что, как мне показалось, мне не нужно, потому что я понимаю, что плагин отклоняет все недействительные запросы без маркера в любом случае.Так что в моей конечной точке я должен быть уверен, что у пользователя есть действующий токен, этого мне достаточно.

Где я ошибаюсь?

РЕДАКТИРОВАТЬ: я думаю, что мне не хватает общего понимания понятий здесь,Может ли кто-нибудь подтвердить мою догадку: если я хочу защитить свои пользовательские конечные точки с помощью аутентификации JWT, я должен добавить allow_callback, который просто выполняет проверку is_user_logged_in.Если запрос был сделан с токеном аутентификации JWT, то этот вызов вернет TRUE, в противном случае - false.Другими словами, is_user_logged_in проверяет токен с помощью плагина JWT.Это предположение верно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...