Проблема с токеном аутентификации Wordpress JWT - PullRequest
0 голосов
/ 14 марта 2019

Я использую плагин аутентификации JWT для wordpress rest api для аутентификации доступа api, но проблема https://example.com/wp-json/jwt-auth/v1/token вызывает ошибку, которую он не позволяет.

Например, если я пытаюсь запустить этот URL впочтальон `` https://example.com/wp-json/jwt-auth/v1/token` этот API также требует аутентификации, где он должен работать без проблем с аутентификацией.

Так почему этот URL API требует аутентификации и не может получить доступ к этому API без аутентификации - это мое дело.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 14 марта 2019

Получил решение, создал один плагин и добавил ниже код в нем прекрасно работает.

if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly.
}

if ( ! function_exists( 'require_auth_for_all_endpoints' ) ) {
    add_filter( 'rest_pre_dispatch', 'require_auth_for_all_endpoints', 10, 3 );
    function require_auth_for_all_endpoints( $result, $server, $request ) {
        if ( ! is_user_logged_in() ) {

            // Only allow these endpoints: JWT Auth.
            $allowed_endpoints = array(
                '/jwt-auth/v1/token/validate',
                '/jwt-auth/v1/token',
                '/oauth/authorize',
                '/oauth/token',
                '/oauth/me',
            );
            $allowed_endpoints = apply_filters( 'reqauth/allowed_endpoints', $allowed_endpoints );

            // Endpoint checker.
            $regex_checker = '#^(' . join( '|', $allowed_endpoints ) . ')#';
            $regex_checker = apply_filters( 'reqauth/regex_checker', $regex_checker );

            $is_allowed = preg_match( $regex_checker, $request->get_route() );
            $is_allowed = apply_filters( 'reqauth/is_allowed', $is_allowed );

            if ( ! $is_allowed ) {
                return new WP_Error( 'rest_not_logged_in', __( 'You are not currently logged in.' ), array( 'status' => 401 ) );
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...