Heim >Backend-Entwicklung >PHP-Problem >So verwenden Sie Token-PHP

So verwenden Sie Token-PHP

藏色散人
藏色散人Original
2021-09-21 09:21:512899Durchsuche

So verwenden Sie das Token in PHP: 1. Der Client-Benutzer gibt den Benutzernamen und das Passwort ein, um sich anzumelden und das Token anzufordern. 2. Verwenden Sie die JWT-Spezifikation, um das Token zu generieren. 4. Der Client erhält die Token-Anfragedaten.

So verwenden Sie Token-PHP

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP Version 7.1, Dell G3-Computer.

Wie verwende ich Token-PHP?

Generierung und Verwendung von PHP-Token

1. Warum Token für die Anmeldung verwenden? Trennung von Front-End und Backend oder um mehrere Webanwendungen zu unterstützen, dann wird es große Probleme bei der Verwendung des Originals geben Cookies oder Sitzungen

Cookie- und Sitzungsauthentifizierung müssen unter demselben primären Domänennamen erfolgen, bevor die Authentifizierung durchgeführt werden kann (derzeit kann die Sitzung in Redis gespeichert werden, um das Problem zu lösen).


2. Lösung

oauth2 und jwt

jwt: ist ein Sicherheitsstandard. Die Grundidee besteht darin, dass der Benutzer dem Authentifizierungsserver den Benutzernamen und das Kennwort zur Verfügung stellt und der Server die Legitimität der vom Benutzer übermittelten Informationen überprüft. Wenn die Überprüfung erfolgreich ist, wird ein Token (Token) generiert und zurückgegeben

OAuth2 : Es handelt sich um ein sicheres Autorisierungsframework. Es beschreibt im Detail, wie eine gegenseitige Authentifizierung zwischen verschiedenen Rollen, Benutzern, Service-Front-End-Anwendungen (z. B. API) und Clients (z. B. Websites oder mobilen APPs) im System erreicht wird.

(jwt, dieses JSON-Web-Token wird hier zur Authentifizierung verwendet)

3. Generierungsmethode

    Header: Verschlüsselungstyp
  1. Beschreibung: Nachrichteninhalt
  2. Schlüssel: ein zufälliger Code zum Verschlüsseln
  3. Verwenden Sie ., um eine Verbindung herzustellen, und verwenden Sie dann hs256, um das Token zu generieren
  4. 4. Der Header besteht normalerweise aus zwei Teilen: dem Typ des Tokens (d. h. JWT) und dem verwendeten Verschlüsselungsalgorithmus (z. B. SHA256 oder RSA)
{
      "alg": "HS256",
      "typ": "JWT"
}

Dann ist dieser JSON Base64Url-codiert und wird zum ersten Teil

2. Die Nutzlast ist die Deklaration. Bei der Erklärung geht es um die Entität.

{
      "exp": "1525785339",
      "sub": "1234567890",
      "name": "John Doe",
      "admin": true
}

Die Nutzlast wird dann Base64Url-codiert, um zum zweiten Teil zu werden

(PS: Diese Informationen sind zwar vor Manipulationen geschützt, können aber von jedem gelesen werden. Legen Sie keine wichtigen Informationen darin ab, es sei denn, sie sind verschlüsselt)

3). Verwenden Sie einen Verschlüsselungsschlüssel

4). Zum Signieren müssen Sie den ersten codierten Teil, den zweiten codierten Teil und dann einen Schlüssel verwenden. Verwenden Sie den Verschlüsselungsalgorithmus im ersten Teil zum Signieren
HMACSHA256(
          base64UrlEncode(header) + "." + base64UrlEncode(payload),
          key
)

Diese Signatur wird verwendet, um zu überprüfen, ob die Nachricht manipuliert wurde.

(PHP verwendet die Verschlüsselungsmethode für die Verschlüsselung. Hinweis: SHA-256 dient der Manipulationssicherheit und AES-256 wird für die Verschlüsselung verwendet. Die beiden Konzepte sind unterschiedlich.)

5. Der Speicherort des Tokens

sollte normalerweise sein im Header der Anforderung Das Autorisierungsfeld verwendet den Bearer-Modus, um JWT (Authorization: Bearer) hinzuzufügen (natürlich können Sie es auch an einer beliebigen Stelle platzieren, z. B. indem Sie es als Parameter nach der URL übergeben, sofern der Client es erkennen kann , aber da es sich bei JWT um eine Spezifikation handelt, sollten wir uns besser an die Spezifikation halten.

Empfohlene Studie: „

PHP-Video-Tutorial

6. Verwendung

Der Client-Benutzer gibt den Benutzernamen und das Passwort ein und meldet sich an das Token

Nachdem der Server die Anfrage erhalten hat, verwendet er die JWT-Spezifikation. Generieren Sie ein Token und geben Sie es an den Client zurück.
  1. Nachdem der Client das Token erhalten hat, überprüft er nach der Entschlüsselung die Aktualität des Tokens (die Ablaufzeit). des Tokens) und speichert es.
  2. Der Client fordert Daten mit dem Token an Wenn Sie einen Token verwenden, können Sie ihn fälschen und nachahmen, wenn er erbeutet wird. Wenn die Sicherheit also relativ hoch ist, empfiehlt sich die Verwendung von oauth2

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Token-PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn