Jwt-auth: En-tête d'autorisation introuvable

Créé le 27 nov. 2019  ·  2Commentaires  ·  Source: WP-API/jwt-auth

Bonjour, j'utilise ceci avec la classe client GuzzleHttp comme suit :

$blogService = new Client([
            'base_uri' => $baseBlogUrl . '/wp-json/wp/v2/',
            'headers' => [
                'Authorization' => 'Bearer ' . $result['access_token']
            ],
            'debug' => true
        ]);

Cela entraîne une erreur : {"code":"rest_authentication_no_header","message":"Authorization header was not found.","data":{"status":403}}

Le débogage pour la demande prouve que l'en-tête d'autorisation existe cependant :

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

Commentaire le plus utile

Hey,
peut-être trouvé une solution à cela.

Ajout de 3 lignes dans la ligne .htaccess (comme il semble que HTTP_AUTHORIZATION soit par ailleurs rayé) :

RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

comme suit (dans ces endroits spécifiques) :

<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

Je ne sais pas encore ce qu'il se passe lors de la mise à jour de certains plugins si ces lignes étaient effacées...

Edit : peut-être quelque chose à ajouter au README ?
Aussi, je me demande s'il existe un moyen d'automatiser l'ajout de ces lignes au fichier .htaccess via l'installation du plugin...

Tous les 2 commentaires

Hey,
peut-être trouvé une solution à cela.

Ajout de 3 lignes dans la ligne .htaccess (comme il semble que HTTP_AUTHORIZATION soit par ailleurs rayé) :

RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

comme suit (dans ces endroits spécifiques) :

<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

Je ne sais pas encore ce qu'il se passe lors de la mise à jour de certains plugins si ces lignes étaient effacées...

Edit : peut-être quelque chose à ajouter au README ?
Aussi, je me demande s'il existe un moyen d'automatiser l'ajout de ces lignes au fichier .htaccess via l'installation du plugin...

Hey,
peut-être trouvé une solution à cela.

Ajout de 3 lignes dans la ligne .htaccess (comme il semble que HTTP_AUTHORIZATION soit par ailleurs rayé) :

RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

comme suit (dans ces endroits spécifiques) :

<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

Je ne sais pas encore ce qu'il se passe lors de la mise à jour de certains plugins si ces lignes étaient effacées...

Edit : peut-être quelque chose à ajouter au README ?
Aussi, je me demande s'il existe un moyen d'automatiser l'ajout de ces lignes au fichier .htaccess via l'installation du plugin...

Cela a fonctionné pour moi aussi. À votre santé.

Cette page vous a été utile?
0 / 5 - 0 notes