Junior — Middle
Comment la vérification de l'authenticité de l'utilisateur est-elle effectuée à l'aide de JWT?
sobes.tech IA
Réponse de l'IA
La vérification de l'identité de l'utilisateur à l'aide de JWT (JSON Web Token) se fait généralement de la manière suivante :
- L'utilisateur envoie ses identifiants (par exemple, nom d'utilisateur et mot de passe) au serveur.
- Le serveur vérifie les données et, si elles sont correctes, crée un JWT contenant une charge utile (payload) avec les informations de l'utilisateur et la durée de validité du token.
- Le token est signé avec une clé secrète et envoyé au client.
- Le client stocke le token (par exemple, dans localStorage ou cookies) et le transmet dans l'en-tête Authorization lors des requêtes suivantes.
- Lorsqu'il reçoit la requête, le serveur extrait le token, vérifie sa signature et sa durée de validité, et si tout est en ordre, accorde l'accès aux ressources protégées.
Exemple en Python avec la bibliothèque PyJWT :
import jwt
import datetime
CLE_SECRETE = 'votre_clé_secrète'
def create_token(user_id):
payload = {
'user_id': user_id,
'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=1)
}
token = jwt.encode(payload, CLE_SECRETE, algorithm='HS256')
return token
def verify_token(token):
try:
payload = jwt.decode(token, CLE_SECRETE, algorithms=['HS256'])
return payload['user_id']
except jwt.ExpiredSignatureError:
return None # Token expiré
except jwt.InvalidTokenError:
return None # Token invalide
Ainsi, JWT permet de transmettre en toute sécurité des informations sur l'utilisateur entre le client et le serveur sans avoir besoin de stocker des sessions sur le serveur.