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.
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" }
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 }
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 )
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!