Je travaille sur une application frontale qui se lie à l'API wordpress qui se trouve sur un domaine distinct.WP-API Récupération des brouillons "Nonce cookie n'est pas valide"
Je souhaite récupérer un brouillon de publication, de sorte que lorsque l'utilisateur clique sur «Aperçu de la publication» dans le panneau d'administration de Wordpress, il ouvre mon application avec le contenu correct.
Je charge du Javascript dans l'Admin WP afin que je puisse modifier tous les liens de "Preview Post" dans le panneau d'administration avec un jeton wp_nonce à des fins d'authentification. Cela se fait en utilisant l'extrait ci-dessous, qui tord le lien post aperçu dans par exemple: http://example.com/blog?p=127&preview=true&auth=16045802ee
function admin_inline_js(){
// Grab URL
echo '
<script>
document.addEventListener("DOMContentLoaded", function() {
// Grab all preview anchors
var anchors = document.querySelectorAll("a[href*=\'preview=true\']"), i;
// Loop through and amend to remove the trailing slash, as WP doesnt provide any easy method to achieve this.
for(i = 0; i < anchors.length; i++) {
anchors[i].href = anchors[i].href.replace("blog/", "blog") + \'&auth=' . wp_create_nonce('wp_rest') .'\';
}
});
</script>
';
}
add_action('admin_print_scripts', 'admin_inline_js');
A http://example.com/blog?p=127&preview=true&auth=16045802ee
, le paramètre auth
est ensuite utilisé pour poster une demande de retour à wordpress pour récupérer le projet avec un ID de 127, avec un jeton nonce de 16045802ee
. Cependant, cela ne fonctionne pas, et j'obtenir cette réponse:
object(stdClass)#459 (3) { ["code"]=> string(25) "rest_cookie_invalid_nonce" ["message"]=> string(23) "Cookie nonce is invalid" ["data"]=> object(stdClass)#532 (1) { ["status"]=> int(403) } }
Quelqu'un peut-il repérer ce que je fais mal ici? :/
Merci.