it-swarm.com.de

Verwenden Sie JWT, um einen Benutzer mit einem externen System zu authentifizieren?

Wir haben eine WordPress-Anwendung, die mit einem übergeordneten System verknüpft wird. Wir möchten JWT für die Authentifizierung beim übergeordneten Element verwenden. Die Idee ist, dass der Benutzer, wenn er nicht am übergeordneten Computer angemeldet ist, nicht auf die WordPress-Site zugreifen darf (nur das Front-End, immer, das Dashboard ist ausschließlich für den Administrator). Wenn der Benutzer versucht, über ein Lesezeichen oder einen Verlauf auf die WordPress-Anwendung zuzugreifen, müssen wir ihn zum Anmelden an die übergeordnete Site senden. Es werden keine API-Aufrufe an die übergeordnete Site vorgenommen, außer zur Authentifizierung, da WP App hat seine eigenen Daten. Das bringt mich zu den Fragen.

  1. Ist JWT für unsere Situation geeignet?
  2. Wie würde ich es mit WordPress integrieren?
  3. Muss ich das native Authentifizierungssystem von WP ändern, damit es mit JWT funktioniert?

Mein aktueller Ansatz ist folgender: Ein Benutzer meldet sich beim übergeordneten System an und folgt dem Link zur WordPress-Site. Das JWT-Token wird als Post-Anfrage an die Site WP gesendet. Ich werde die Anfrage mit der Aktion init analysieren und den WP spezifischen Benutzernamen und das Passwort daraus abrufen. Ich setze dann das Token mit einer Ablaufzeit (ist es wirklich erforderlich?) Und melde den Benutzer an. Wenn der Benutzer versucht, über ein Lesezeichen oder einen Verlauf auf die Anwendung zuzugreifen, leite ich ihn zur übergeordneten Site weiter.

Ist das der richtige Weg? Gibt es einen besseren Weg? Bei Bedarf erteile ich Ihnen gerne weitere Informationen.

4

Ein neuer Kommentar hat mich auf diese Frage aufmerksam gemacht, die ich gestellt hatte. Ich hatte auch eine andere Frage zu diesem Thema gepostet und sie später gelöst und eine Antwort gepostet, hier: JWT-Authentifizierung mit WP - Ansatz

Kopieren Sie diese Antwort hierher, damit es jemandem hilft, der über diese Implementierung stolpert:

  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.

1