Maison > développement back-end > Problème PHP > Comment générer un jeton php

Comment générer un jeton php

(*-*)浩
Libérer: 2023-02-26 13:10:01
original
6376 Les gens l'ont consulté

En séparant le front-end et le back-end ou en prenant en charge plusieurs applications Web, il y aura de gros problèmes lors de l'utilisation des cookies ou des sessions d'origine.

L'authentification des cookies et des sessions doit être sous le même nom de domaine principal Authentification peut être effectué (actuellement, la session peut être stockée dans Redis pour la solution).

Comment générer un jeton php

Solution

oauth2 et jwt (apprentissage recommandé : Tutoriel vidéo PHP)

jwt : C'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 jeton Web JSON est utilisé pour l'authentification ici)

Méthode de génération

En-tête : Type de cryptage

Description : Contenu du message

Clé : un code aléatoire utilisé pour chiffrer

Utilisez les trois parties ci-dessus, connectez-les, puis utilisez hs256 pour chiffrer et générer un jeton

Méthode de génération détaillée

1). L'en-tête se compose généralement de deux parties : le type de jeton (c'est-à-dire JWT) et l'algorithme de chiffrement utilisé (comme SHA256 ou RSA)

{
      "alg": "HS256",
      "typ": "JWT"
}
Copier après la connexion

Ensuite, ce json est Base64Url encodé et devient la première partie

2). La charge utile est la déclaration. La déclaration concerne l'entité.

{
      "exp": "1525785339",
      "sub": "1234567890",
      "name": "John Doe",
      "admin": true
}
Copier après la connexion

La charge utile est ensuite codée en Base64Url et devient 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). Utilisez 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
)
Copier après la connexion

Cette signature permet de 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)

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!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal