it-swarm.com.de

JWT-Authentifizierung mit WP - Ansatz

Wir verwenden JWT ( JSON Web Token ) zur Authentifizierung unserer WordPress-Anwendung bei einem externen Dienst. Der aktuelle Fluss, an den wir denken, sieht folgendermaßen aus:

  1. Der Benutzer meldet sich auf der übergeordneten Site an
  2. Die übergeordnete Site sendet eine POST -Anforderung mit den Benutzerinformationen und dem JWT-Token an die WordPress-Site
  3. Die Site WP speichert das JWT-Token
  4. Das Token wird jedes Mal auf Ablauf überprüft, wenn der Benutzer eine neue Seite besucht. Wenn das Token abgelaufen ist, wird der Benutzer zur erneuten Anmeldung an die übergeordnete Site umgeleitet.

Meine Fragen:

  1. Ist das der richtige Ansatz?
  2. Wie speichere ich das JWT-Token? Ein Keks? Oder in der Datenbank mit den Benutzerinformationen als eindeutiger Kennung? Hinweis: Die Benutzer werden nicht auf der Site WP registriert.
  3. Wie überprüfe ich das Ablaufdatum?

Es gibt ein WP Plugin für JWT aber keine Dokumentation dafür, daher bin ich mir nicht sicher, ob es meinem Zweck dienen wird.

8

Dies zeigte sich als Benachrichtigung aufgrund der Aufwertung. Hier ist, wie ich es gelöst habe.

  1. Der in der App codierte Endpunkt, mit dem ich mich authentifizieren soll, bereitet das Token vor.
  2. Das Token muss im angegebenen Format vorliegen.
  3. Es sollte dann Base 64-codiert und Hash-verschlüsselt sein.
  4. Der wp_init-Handler sollte verwendet werden, um die vom Endpunkt gesendete POST -Anforderung zu verarbeiten und das Token zu extrahieren.
  5. Der Schlüssel wird auf andere Weise geteilt und für die Entschlüsselung verwendet.
  6. Vergleichen Sie das extrahierte Token mit einem lokal generierten Token mit denselben Informationen.
  7. Speichern Sie es in einem Cookie und überprüfen Sie es bei jedem Seitenzugriff. Sie können es nach einer Weile ablaufen lassen oder die Zeitscheibe bei jedem Seitenzugriff weiter erhöhen.

Der Endpunkt kann in einer beliebigen Sprache sein. Auch das ist der allgemeine Ablauf, Sie können es verwenden, wo immer Sie wollen.

7

Das Aktivieren von Single-Sign-On in WordPress hat mich mehr als 18 Stunden gekämpft, aber möglicherweise dauert es nur ein paar Minuten:

Grundsätzlich sollten Sie https://wordpress.org/plugins/wp-force-login/ und eine geänderte Version von https://as.wordpress.org/plugins/jwt-authenticator verwenden/ und erstellen Sie dann einen auth-geschützten Endpunkt auf Ihrer Hauptsite, der ein JWT (JSON Web Token) generiert und zur speziellen URL Ihrer WordPress-Site zurückleitet.

Siehe vollständigen Code hier .

0
Ryan