2016-12-20 6 views
1

Le nouveau WordPress v4.7 intègre WordPress REST API dans le noyau de WP. Cela rend les publications, les pages et les médias accessibles au public en utilisant des appels HTTP, même sur des sites privés.Comment authentifier les requêtes HTTP dans WordPress 4.7?

Existe-t-il un paramètre dans WP pour bloquer ou authentifier les requêtes GET et POST (etc.)?

Je construis une application Angular 1.5 REST avec WP et ce serait génial d'authentifier ces demandes publiques.

+0

Les membres de plugin par Justin Tadlock https://wordpress.org/plugins/members/ a maintenant une option pour exiger l'authentification à l'API REST. – Brian

Répondre

0

La dernière API de WordPress inclut maintenant authentication for all requests. Ajout du filtre is_user_logged_in au déposant rest_authentication_errors devrait exiger une authentification:

add_filter('rest_authentication_errors', function($result) { 
    if (!empty($result)) { 
     return $result; 
    } 
    if (!is_user_logged_in()) { 
     return new WP_Error('rest_not_logged_in', 'You are not currently logged in.', array('status' => 401)); 
    } 
    return $result; 
}); 
0

Bien sûr, vous pouvez authentifier les demandes. J'ai trouvé un lien dans la documentation sur l'authentification. Il fonctionne également avec les cookies, OAuth et le mot de passe.

WordPress API Authentication

+0

Je suis tombé sur cette page mais peut-être ai-je raté quelque chose? Dans mes tests j'ai utilisé postman pour tester GET '.../wp-json/wp/v2/posts' et la requête est passée sans vérifier les informations d'identification. Je n'ai pas pu trouver de paramètre WP pour désactiver cela (au minimum) maintenant que ce comportement est inclus par défaut. – Brian