Heim > Backend-Entwicklung > PHP-Problem > So generieren Sie ein PHP-Token

So generieren Sie ein PHP-Token

(*-*)浩
Freigeben: 2023-02-26 13:10:01
Original
6377 Leute haben es durchsucht

Bei der Trennung von Front- und Back-End oder der Unterstützung mehrerer Webanwendungen treten große Probleme bei der Verwendung der ursprünglichen Cookies oder Sitzungen auf.

Cookie- und Sitzungsauthentifizierung müssen unter demselben Hauptdomänennamen erfolgen. Authentifizierung kann durchgeführt werden (derzeit kann die Sitzung zur Lösung in Redis gespeichert werden).

So generieren Sie ein PHP-Token

Lösung

oauth2 und jwt (empfohlenes Lernen: PHP-Video-Tutorial)

jwt: Es 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)

Generierungsmethode

Header: Verschlüsselungstyp

Beschreibung: Nachrichteninhalt

Schlüssel: ein zufälliger Code zum Verschlüsseln

Verwenden Sie die oben genannten drei Teile, verbinden Sie sie und verwenden Sie dann hs256 zum Verschlüsseln und Generieren des Tokens

Detaillierte Generierungsmethode

1). Der Header besteht normalerweise aus zwei Teilen: dem Typ des Tokens (d. h. JWT) und dem verwendeten Verschlüsselungsalgorithmus (wie SHA256 oder RSA)

{
      "alg": "HS256",
      "typ": "JWT"
}
Nach dem Login kopieren

Dann ist dies der JSON Base64Url kodiert und wird zum ersten Teil

2). Bei der Erklärung geht es um die Entität.

{
      "exp": "1525785339",
      "sub": "1234567890",
      "name": "John Doe",
      "admin": true
}
Nach dem Login kopieren

Die Nutzlast wird dann Base64Url-codiert und wird zum zweiten Teil
(PS: Diese Informationen sind zwar manipulationsgeschü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, um

HMACSHA256(
          base64UrlEncode(header) + "." + base64UrlEncode(payload),
          key
)
Nach dem Login kopieren

zu signieren. Diese Signatur wird verwendet, um zu überprüfen, ob die Nachricht manipuliert wurde.
(PHP verwendet die Crypt-Methode zur Verschlüsselung. Hinweis: SHA-256 wird zur Manipulationssicherheit und AES-256 zur Verschlüsselung verwendet. Die beiden Konzepte sind unterschiedlich)

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

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage