So fügen Sie in PHP ein Token zum Antwortheader hinzu

藏色散人
Freigeben: 2023-03-17 22:00:01
Original
3884 Leute haben es durchsucht

So fügen Sie ein Token zum Antwortheader in PHP hinzu: 1. Verwenden Sie den Bearer-Modus, um JWT im Autorisierungsfeld im Header der Anfrage hinzuzufügen. 2. Nachdem der Server die Anfrage erhalten hat, verwenden Sie die JWT-Spezifikation, um das Token zu generieren Geben Sie es an den Kunden zurück.

So fügen Sie in PHP ein Token zum Antwortheader hinzu

Die Betriebsumgebung dieses Tutorials: Windows 10-System, PHP-Version 8.1, DELL G3-Computer

Wie fügt PHP dem Antwortheader ein Token hinzu?

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 zur Authentifizierung unter demselben primären Domänennamen erfolgen (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

Beschreibung: Nachrichteninhalt

Schlüssel: ein zufälliger Code, der zur Verschlüsselung verwendet wird

oben Die drei Teile sind verbunden und dann mit hs256 verschlüsselt, um ein Token zu generieren

4. Detaillierte Generierungsmethode

1 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"
}
Nach dem Login kopieren

Dann ist dieser JSON Base64Url-codiert 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, 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) ein 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 zum Signieren den Verschlüsselungsalgorithmus im ersten Teil

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

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. Es verwendet die JWT-Spezifikation, um das Token zu generieren und an den Client zurückzugeben.

Der Client empfängt es. Überprüfen Sie nach Erhalt des Tokens nach der Entschlüsselung die Aktualität des Tokens (die Ablaufzeit des Tokens) und speichern Sie es Verwendet den Token, um Daten anzufordern und zu entschlüsseln, überprüft er die Aktualität des Benutzers und überprüft dann den Benutzer.

1 Zeitraum der Token)

2. Es ist nicht einfach, mit abgelaufenen Daten umzugehen (Token-Ungültigmachung unterstützen)

Wenn Sie also den Token verwenden, können Sie ihn fälschen und sich ausgeben, wenn er erfasst wird. Wenn die Sicherheit also relativ hoch ist, empfiehlt es sich dennoch, oauth2 zu verwenden

Lernempfehlung: „

PHP Video Tutorial

Das obige ist der detaillierte Inhalt vonSo fügen Sie in PHP ein Token zum Antwortheader hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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