wake-up-neo.net

node-wpapi: Wie gehe ich mit der Authentifizierung um?

Ich beziehe mich auf die offizielle Node-wpapi-Javascript-Clientbibliothek für offizielle (4.7+) REST APIs. Hier das Dokument: http://wp-api.org/node-wpapi/authentication/#cookie-authentication

Ich lese den Cookie Authentication Absatz, aber ich bin nicht in dieser Situation.

Ich versuche, eine App für eine einzelne Seite zu erstellen, daher muss ich den Benutzer mithilfe der REST -API registrieren/anmelden/abmelden. Ich muss nicht node-wpapi verwenden, sondern kann jede andere Bibliothek zum Aufrufen der API-Endpunkte verwenden.

Mein Problem ist jedoch, dass ich nicht verstehe, wie ich einen Benutzer anmelden muss und was ich speichern muss, um die anderen API-Aufrufe zu verarbeiten, bei denen Benutzer angemeldet sein müssen (zum Beispiel um einen Beitrag zu erstellen).

1
realtebo

Ich bin der Autor der node-wpapi Bibliothek, danke für das Auschecken. Leider unterstützen wir derzeit kein externes Authentifizierungsschema von Anfang an, da WordPress selbst kein anderes Authentifizierungsschema als die Cookie/Nonce-Option enthält (was mit externen Apps nicht funktioniert, wie Sie beschreiben).

Es gibt Plugins für die Authentifizierung von API-Anforderungen mit JWT und OAuth 1.0a. Die Verarbeitung dieser Methoden kann für node-wpapi mithilfe einer Kombination aus benutzerdefinierten Transportmethoden und der neuen Funktion .setHeaders() ausgeführt werden, die wir in der Version 1.1 von node-api der letzten Woche eingeführt haben.

Was Sie beschreiben, klingt jedoch nicht nach etwas, das mit diesen Ansätzen gelöst werden könnte. Insbesondere ist die REST API-Authentifizierung eine Möglichkeit, eine einzelne Anfrage bei Ihrer WordPress-Site zu authentifizieren. "Ich habe praktisch das Recht, die von mir angeforderte Ressource anzuzeigen oder zu bearbeiten." Die REST API bietet keinen Mechanismus zum Anmelden bei WordPress, der mit dem vorhandenen WordPress-Anmeldeformular behandelt werden sollte.

Wenn Ihr SPA darauf ausgelegt ist, in einem Plugin ausgeführt zu werden, empfehle ich, es so einzurichten, dass eine Seite erstellt wird, die nur beim Anmelden angezeigt wird. Wenn Ihre Benutzer versuchen, die App zu öffnen, werden sie zur vorhandenen Anmeldeseite von WordPress und zurück geleitet zu deiner App. Einmal angemeldet, kann eine einzelne Seitenanwendung die Cookie-/Nonce-Authentifizierung für API-Anforderungen verwenden. Ein Beispiel finden Sie im Projekt unter https://github.com/kadamwhite/wp-notebook

Hoffe das hilft und danke für die Verwendung der REST API!

4
K. Adam