от
Я хочу проверить API Wordpress Rest для запросов из двух разных доменов. Методы Wordpress, Cookie или O-auth могут быть проверены. Но невозможно принимать внешние запросы с Cookie. Осталось проверить с помощью O-auth. Плохо то, что я не могу использовать O-Auth в своем проекте. Поэтому я написал себе функцию «en / de Crypt». Домен, который я запрашиваю, шифрует информацию, а другой домен декодирует и проверяет этот пароль. В конце концов, если зашифрованная информация верна, я даю авторизацию API с помощью функции, подобной следующей.
    function checkApiAuth( $result ){

        $encryptAPIKey = $_GET['requestKey'];

        if( decryptFn( $encryptAPIKey ) === $realKey ):
            $result = true;

        else:
            $result = false;

        endif;

        return $result;           
    }

add_filter('rest_authentication_errors', 'checkApiAuth');
Однако этот метод работает так же, как запрашивающий домен. Если запрос получен из другого домена, он не работает (я думаю, что Acces-Control-Allow-Origin-related) является препятствием. Хотя я сделал это следующим образом, я не смог авторизовать Rest API для запросов извне.
Access

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

        

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
давайте взглянем на плагин, который WordPress предлагает нам для тестирования и технических экспериментов. Теперь представляем плагин Basic-auth. Чтобы упростить процесс изнутри (то есть теоретически открыть систему для каждого запроса) Давайте передадим код ниже и продолжим с теми, которые будут работать.
    function json_basic_auth_handler( $user ) {
        global $wp_json_basic_auth_error;

        //$wp_json_basic_auth_error = null;

        // Don't authenticate twice
        //if ( ! empty( $user ) ) {
        //  return $user;
        //}

        // Check that we're trying to authenticate
        //if ( !isset( $_SERVER['PHP_AUTH_USER'] ) ) {
        //  return $user;
        //}

        //$username = $_SERVER['PHP_AUTH_USER'];
        //$password = $_SERVER['PHP_AUTH_PW'];

        /**
         * In multi


  Помните, что это только для целей тестирования!


Теперь, если мы посмотрим на то, что он делает здесь в дополнение к тому, что вы сделали, что легко понять, он определяет идентификатор пользователя для системы.

Таким образом, когда ваш код сочетается с этим кодом, они работают в идеальной гармонии.

Все, что вам нужно знать, это то, что эти экспериментальные процессы связаны только с работой системы. Выполнение этих операций без строгих правил безопасности подвергает вашу систему большой опасности. Но да, именно так вы можете обрабатывать все запросы внешнего API. Желаю удобств.
    
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...