Autenticare un utente con WP-API V2 in Postman

9 mar 2016, 21:10:26
Visualizzazioni: 15K
Voti: 2

Sto utilizzando Postman per testare il mio progetto e la wp-api. Più specificamente richieste POST dove un utente deve essere autenticato per eseguire azioni. Ecco quello che sto usando per creare un utente:

{{url}}/projectname/wp-json/wp/v2/users/?username=nuovonome&email=ben@scientifik.com&password=passwordhere

Tuttavia quando testo qualcosa che richiede autenticazione, come creare un utente, ricevo un errore 401:

{
  "code": "rest_cannot_create_user",
  "message": "Spiacente, non hai i permessi per creare questa risorsa.",
  "data": {
    "status": 401
  }
}

Autenticazione via Nonce: Se guardi il link sopra, la documentazione spiega come impostare l'header e inviare il nonce. Potrei impostare l'header come X-WP-Nonce ma come posso ottenere il nonce da inviare in Postman?

Autenticazione via cookie: Ho installato l'interceptor di Postman per catturare i cookie e ne vedo 5, ma ottengo sempre errore 401 con il metodo sopra.

Qualsiasi idea o guida sarebbe molto utile per la community.

5
Commenti

Forse la domanda è: cosa stai testando esattamente? I nonce e i cookie implicano il front-end e perché vorresti esporre qualsiasi API di "scrittura" al front-end? A proposito, non ho molta familiarità con l'API, ma il nonce dovrebbe probabilmente accompagnare i cookie, non sostituirli, a meno che uno dei cookie non funga da nonce.

Mark Kaplun Mark Kaplun
9 mar 2016 21:54:39

Se non sei nel sito, alcune richieste, come la creazione/aggiornamento di contenuti o l'ottenimento di contenuti privati, richiedono l'autenticazione tramite OAuth. I cookie con nonce possono essere usati solo per l'autenticazione all'interno del sito.

cybmeta cybmeta
9 mar 2016 22:06:06

@cybmeta quindi stai dicendo che è impossibile usare Postman e la WP-API per fare richieste POST a causa dei nonce. Corretto?

Ben Racicot Ben Racicot
10 mar 2016 17:04:07

Devi inviare un cookie di autenticazione valido e un nonce valido. Ma i cookie sono validi solo all'interno dello stesso dominio. Non so se puoi aggirare questo requisito utilizzando Postman. Il modo per autenticarsi tra domini è il metodo OAuth, che sono sicuro puoi usare con Postman. Se vuoi usare Postman solo per testare durante lo sviluppo, puoi anche utilizzare l'autorizzazione Basic. Tutto questo è spiegato, con altre parole, nel link che hai condiviso nella domanda: http://v2.wp-api.org/guide/authentication/

cybmeta cybmeta
10 mar 2016 21:20:46

In realtà è spiegato piuttosto male nella documentazione. La documentazione per questo progetto è sempre stata in ritardo rispetto allo sviluppo. :/

MTT MTT
13 mag 2016 20:07:28
Tutte le risposte alla domanda 2
0

Postman condivide i cookie con Chrome. Se sei loggato nel tuo sito potresti vedere risultati inaspettati.

RIF: https://wordpress.org/support/topic/wp-api-cant-create-a-post/

3 dic 2016 09:50:44
1

Postman non necessita di un nonce per creare contenuti con la versione v2 beta 12... basta utilizzare il plugin WP-API Basic Auth. L'unico header richiesto è quello di autenticazione.

Screenshot che mostra l'autenticazione di base in Postman

17 mag 2016 00:52:15
Commenti

Questo è bello, ma irrilevante per qualsiasi sviluppo front end, specialmente su siti non https. Semplicemente non invierai la tua password in chiaro, e il nonce è obbligatorio per gli utenti loggati.

Mark Kaplun Mark Kaplun
5 mar 2018 05:34:11