Faire de la basic auth pour la REST API

Pour poster un contenu (post, média, etc) par le biais de la REST API il est nécessaire d’être authentifié. Voyons comment mettre en place cette authentification dans votre projet WordPress.

Pour réaliser de la REST API authentifiée de manière la plus basique (il est préférable de le faire en OAuth), il est nécessaire d’utiliser le plugin Basic Auth. Néanmoins il faudra rajouter dans votre htaccess des règles spécifiques ci-dessous décrites :

## For Basic Auth, there is a part inside WordPress then an other one

# BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteEngine On

    # Add Basic Auth
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteBase /
    RewriteRule ^index\.php$ - [L]

    # add a trailing slash to /wp-admin
    RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^(wp-(content|admin|includes).*) wp/$1 [L]
    RewriteRule ^(.*\.php)$ wp/$1 [L]
    RewriteRule . index.php [L]
</IfModule>
# END WordPress

# BEGIN WP BASIC Auth
<IfModule mod_rewrite.c>
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
</IfModule>
# END WP BASIC Auth

Derrière, dans Postman il suffit de faire une requête authentifiée :

REST API basic auth avec Postman
REST API basic auth avec Postman

Publié par

Maxime CULEA

Développeur back-end WordPress et Community Manager, il partage énormément son expertise dans les WordCamps, les réseaux sociaux, les projets open-source, extensions, etc. De nature ouverte, laissez lui un commentaire / une question et il se fera un plaisir d'y répondre.