Comment utiliser les jetons en PHP : 1. L'utilisateur client saisit le nom d'utilisateur et le mot de passe pour se connecter et demander le jeton ; 2. Utilisez la spécification JWT pour générer le jeton ; 3. Vérifiez l'actualité du jeton ; le client obtient les données de demande de jeton.
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur Dell G3.
Comment utiliser le token PHP ?
Génération et utilisation d'un jeton php
Séparation du front-end et du back-end ou afin de prendre en charge plusieurs applications Web, il y aura alors de gros problèmes dans l'utilisation de l'original. cookies ou sessions
L'authentification des cookies et de la session doit être sous le même nom de domaine principal avant que l'authentification puisse être effectuée (actuellement, la session peut être stockée dans Redis pour résoudre le problème).
oauth2 et jwt
jwt : est une norme de sécurité. L'idée de base est que l'utilisateur fournit le nom d'utilisateur et le mot de passe au serveur d'authentification, et le serveur vérifie la légitimité des informations soumises par l'utilisateur ; si la vérification réussit, un jeton (jeton) sera généré et renvoyé
OAuth2 ; : Il s'agit d'un cadre d'autorisation sécurisé. Il décrit en détail comment réaliser une authentification mutuelle entre différents rôles, utilisateurs, applications frontales de service (telles que l'API) et clients (tels que des sites Web ou des applications mobiles) dans le système.
(jwt, ce JSON Web Token est utilisé pour l'authentification ici)
En-tête : Type de cryptage
Description : Contenu du message
clé : un code aléatoire Pour chiffrer
utilisez . pour vous connecter, puis utilisez hs256 pour chiffrer afin de générer un jeton
1). (comme SHA256 ou RSA)
{ "alg": "HS256", "typ": "JWT" }
Ensuite, ce json est codé en Base64Url et devient la première partie
2). La déclaration concerne l'entité.
{ "exp": "1525785339", "sub": "1234567890", "name": "John Doe", "admin": true }
La charge utile est ensuite codée en Base64Url pour devenir la deuxième partie
(PS : ces informations, bien que protégées contre la falsification, peuvent être lues par n'importe qui. Ne mettez pas d'informations importantes à l'intérieur à moins qu'elles ne soient cryptées)
3 ). une clé de cryptage
4). Pour signer, vous devez utiliser la première partie codée, la deuxième partie codée, puis une clé clé. Utilisez l'algorithme de cryptage dans la première partie pour signer
HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), key )
Cette signature est utilisée pour vérifier si le message a été falsifié.
(PHP utilise la méthode de cryptage pour le cryptage. Remarque : SHA-256 est utilisé pour la résistance à la falsification et AES-256 est utilisé pour le cryptage. Les deux concepts sont différents)
devrait généralement être. dans l'entête de la requête Le champ Autorisation utilise le mode Bearer pour ajouter JWT (Authorization: Bearer) (bien sûr vous pouvez aussi le placer n'importe où, par exemple en le passant en paramètre après l'URL, du moment que le client peut le reconnaître , mais comme JWT est une spécification, nous ferions mieux de suivre la spécification Venez)
Étude recommandée : "Tutoriel vidéo PHP"
1. 无法作废已颁布的令牌(对token刷新使用期限) 2. 不易应对过期数据(支持 token 失效)
Donc. si vous utilisez un jeton, alors si le jeton est capturé, vous pouvez le falsifier et usurper l'identité. Donc si la sécurité est relativement élevée, il est recommandé d'utiliser oauth2
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!