Привет, я использую это с классом GuzzleHttp Client следующим образом:
$blogService = new Client([
'base_uri' => $baseBlogUrl . '/wp-json/wp/v2/',
'headers' => [
'Authorization' => 'Bearer ' . $result['access_token']
],
'debug' => true
]);
Это приводит к ошибке: {"code":"rest_authentication_no_header","message":"Authorization header was not found.","data":{"status":403}}
Отладка запроса показывает, что заголовок авторизации существует:
POST /wp-json/wp/v2/users HTTP/1.1
Authorization: Bearer ACCESS_TOKEN_HERE
User-Agent: GuzzleHttp/6.4.1 curl/7.29.0 PHP/7.4.0RC6
Content-Type: application/json
Привет,
возможно, нашел какое-то решение для этого.
Добавлены 3 строки в строку .htaccess (кажется, что HTTP_AUTHORIZATION в противном случае вычеркнута):
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
как показано ниже (в этих конкретных местах):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
</IfModule>
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
Еще не уверен, что произойдет при обновлении некоторых плагинов, если эти строки будут удалены ...
Изменить: может быть, что-то добавить в README?
Кроме того, интересно, есть ли способ автоматизировать добавление этих строк в файл .htaccess через установку плагина ...
Привет,
возможно, нашел какое-то решение для этого.Добавлены 3 строки в строку .htaccess (кажется, что HTTP_AUTHORIZATION в противном случае вычеркнута):
RewriteCond %{HTTP:Authorization} ^(.*) RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1] SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
как показано ниже (в этих конкретных местах):
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] RewriteCond %{HTTP:Authorization} ^(.*) RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1] </IfModule> SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
Еще не уверен, что произойдет при обновлении некоторых плагинов, если эти строки будут удалены ...
Изменить: может быть, что-то добавить в README?
Кроме того, интересно, есть ли способ автоматизировать добавление этих строк в файл .htaccess через установку плагина ...
Это сработало и для меня. Ваше здоровье.
Самый полезный комментарий
Привет,
возможно, нашел какое-то решение для этого.
Добавлены 3 строки в строку .htaccess (кажется, что HTTP_AUTHORIZATION в противном случае вычеркнута):
как показано ниже (в этих конкретных местах):
Еще не уверен, что произойдет при обновлении некоторых плагинов, если эти строки будут удалены ...
Изменить: может быть, что-то добавить в README?
Кроме того, интересно, есть ли способ автоматизировать добавление этих строк в файл .htaccess через установку плагина ...