authentification

Ajouter ses propres Endpoints – #3 – authentification

Ici il s’agit d’authentification.

Le problème est le suivant. Je veux accéder en remote à mon application, sans être connecté à WP et sans passer mon mot de passe dans l’URL.

Cette fois ma référence est : WP REST API: Setting Up and Using OAuth 1.0a Authentication

J’ai d’abord installé et activé le plugin WordPress REST API – OAuth 1.0a Server

Le test http://www.hegetique.com/wp-json/ montre que l’authentification est active. J’utilise http://json.parser.online.fr pour décoder le résultat :

  • « authentication« :{
    • « oauth1« :{
      • « request« :« http:\/\/www.hegetique.com\/oauth1\/request »,
      • « authorize« :« http:\/\/www.hegetique.com\/oauth1\/authorize »,
      • « access« :« http:\/\/www.hegetique.com\/oauth1\/access »,
      • « version« :« 0.1 »

      }

    },

Je pensais m’en sortir avec l’article sus-cité mais ça a été laborieux. J’y suis arrivé après de nombreuses tentatives (voir l’article https://apiwordpresstoto.wordpress.com/2017/02/16/modifications-a-wp-rest-api-setting-up-and-using-oauth-1-0a-authentication/)

On peut aussi lire article : https://code.tutsplus.com/tutorials/wp-rest-api-setting-up-and-using-basic-authentication–cms-24762

J’ai fait les tests et ça ne marche pas. Puis j’ai trouvé ce commentaire :

Adding those into .htaccess solves the problem for me:
RewriteCond %{HTTP:Authorization} ^(.)
RewriteRule ^(.
) – [E=HTTP_AUTHORIZATION:%1]

Though, this files gets overwritten every time to edit the plugin.

qui a résolu (partiellement) mon problème.

J’ai aussi étudier une autre solution : https://github.com/Tmeister/wp-api-jwt-auth ou https://pypi.python.org/pypi/wordpress_json

from wordpress_json import * wp = WordPressJsonWrapper(‘http://www.hegetique.com/wp-json/wp/v2’, ‘jboscher’, ‘1…1’) wp posts = wp.get_posts() posts

posts[1].get(title)

Mais comme le package précédent ne fait que de l’authentification simple et je veux oAuth je persiste avec la solution du début.

J’ai aussi essayé le package suivant :

https://pypi.python.org/pypi/wordpress-api/1.2.1

mais ce package Python ne marche pas.

Je reviens sur mon besoin concernant l’authentification : je ne veux pas que l’on puisse accéder directement à l’URL que j’ai créée (endpoint) qui permettra de modifier la base de données WP par une requête SQL. Je sais faire le endpoint (voir articles précédents). Comment faire pour que l’accès à l’URL soit réservé à mon application Python, située en local (sur ma machine) ?

Pour l’authentification, cf. https://apiwordpresstoto.wordpress.com/2017/02/16/modifications-a-wp-rest-api-setting-up-and-using-oauth-1-0a-authentication/

 

 

 

 

 

 

 

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s