node+token implémente la vérification
Cette fois, je vais vous apporter la vérification de l'implémentation du nœud + jeton. Quelles sont les précautions pour la vérification de l'implémentation du nœud + jeton. Ce qui suit est un cas pratique, jetons un coup d'œil.
Récemment, j'ai étudié l'authentification basée sur les jetons et j'ai intégré ce mécanisme dans mon projet personnel. De nos jours, la méthode d'authentification de nombreux sites Web est passée du traditionnel seesion+cookie à la vérification par jeton. Par rapport aux méthodes de vérification traditionnelles, les jetons offrent une meilleure évolutivité et sécurité.
Session traditionnelle+authentification par cookie
Le HTTP étant sans état, il n'enregistre pas l'identité de l'utilisateur. Une fois que l'utilisateur a envoyé le compte et le mot de passe au serveur, l'arrière-plan réussit la vérification, mais le statut n'est pas enregistré, donc la demande de l'utilisateur suivant doit toujours vérifier l'identité. Afin de résoudre ce problème, il est nécessaire de générer un enregistrement contenant l'identité de l'utilisateur côté serveur, c'est-à-dire la session, puis d'envoyer cet enregistrement à l'utilisateur et de le stocker localement dans la zone locale de l'utilisateur, c'est-à-dire un cookie. . Ensuite, la demande de l'utilisateur apportera ce cookie. Si le cookie du client et la session du serveur peuvent correspondre, cela signifie que l'authentification de l'identité de l'utilisateur a réussi.
Vérification de l'identité du jeton
Le processus est à peu près le suivant :
Lors de la première demande, l'utilisateur envoie le numéro de compte et mot de passe
Si la vérification des antécédents réussit, un jeton sensible au temps sera généré et ce jeton sera envoyé à l'utilisateur
Une fois que l'utilisateur a obtenu le jeton, stockez ce jeton localement, généralement dans un stockage local ou un cookie
Chaque requête ultérieure ajoutera ce jeton à l'en-tête de la requête, ainsi qu'à toutes les interfaces qui en ont besoin. pour vérifier l'identité sera vérifiée. Vérifiez le jeton. Si les données analysées par le jeton contiennent des informations sur l'identité de l'utilisateur, la vérification de l'identité est réussie.
Par rapport aux méthodes de vérification traditionnelles, la vérification des jetons présente les avantages suivants :
Dans l'authentification basée sur les jetons, le jeton est transmis via la demande en-tête. Au lieu de stocker les informations d’authentification dans une session ou un cookie. Cela signifie apatride. Vous pouvez envoyer des requêtes au serveur à partir de n'importe quel terminal pouvant envoyer des requêtes HTTP.
Peut éviter les attaques CSRF
Lorsqu'une session est lue, écrite ou supprimée dans une application, une opération sur le fichier se produit dans le dossier temporaire de le système d’exploitation, au moins la première fois. Supposons qu'il existe plusieurs serveurs et que la session est créée sur le premier service. Lorsque vous renvoyez la demande et que celle-ci arrive sur un autre serveur, les informations de session n'existent pas et vous obtenez une réponse « non authentifiée ». Je sais, vous pouvez résoudre ce problème avec une session collante. Cependant, dans l’authentification basée sur les jetons, ce problème est naturellement résolu. Il n'y a pas de problème de session persistante car le jeton de requête est intercepté à chaque requête envoyée au serveur.
Ce qui suit est une introduction à l'utilisation de node+jwt (tutoriel jwt) pour créer une simple vérification d'identité de jeton
Exemple
Lorsque l'utilisateur se connecte pour la première fois, il soumet le compte et le mot de passe au serveur. Si le serveur réussit la vérification, le jeton correspondant est généré :
const fs = require('fs'); const path = require('path'); const jwt = require('jsonwebtoken'); //生成token的方法 function generateToken(data){ let created = Math.floor(Date.now() / 1000); let cert = fs.readFileSync(path.join(dirname, '../config/pri.pem'));//私钥 let token = jwt.sign({ data, exp: created + 3600 * 24 }, cert, {algorithm: 'RS256'}); return token; } //登录接口 router.post('/oa/login', async (ctx, next) => { let data = ctx.request.body; let {name, password} = data; let sql = 'SELECT uid FROM t_user WHERE name=? and password=? and is_delete=0', value = [name, md5(password)]; await db.query(sql, value).then(res => { if (res && res.length > 0) { let val = res[0]; let uid = val['uid']; let token = generateToken({uid}); ctx.body = { ...Tips[0], data: {token} } } else { ctx.body = Tips[1006]; } }).catch(e => { ctx.body = Tips[1002]; }); });
store.set('loginedtoken',token);//store为插件
service.interceptors.request.use(config => { let params = config.params || {}; let loginedtoken = store.get('loginedtoken'); let time = Date.now(); let {headers} = config; headers = {...headers,loginedtoken}; params = {...params,_:time}; config = {...config,params,headers}; return config; }, error => { Promise.reject(error); })
function verifyToken(token){ let cert = fs.readFileSync(path.join(dirname, '../config/pub.pem'));//公钥 try{ let result = jwt.verify(token, cert, {algorithms: ['RS256']}) || {}; let {exp = 0} = result,current = Math.floor(Date.now()/1000); if(current <= exp){ res = result.data || {}; } }catch(e){ } return res; } app.use(async(ctx, next) => { let {url = ''} = ctx; if(url.indexOf('/user/') > -1){//需要校验登录态 let header = ctx.request.header; let {loginedtoken} = header; if (loginedtoken) { let result = verifyToken(loginedtoken); let {uid} = result; if(uid){ ctx.state = {uid}; await next(); }else{ return ctx.body = Tips[1005]; } } else { return ctx.body = Tips[1005]; } }else{ await next(); } });
- Ouvrez l'outil de ligne de commande, saisissez. openssl, open openssl;
- Générer la clé privée : genrsa -out rsa_private_key.pem 2048
- Générer la clé publique : rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
Cliquez ici pour voir le code front-end
Explication détaillée du fractionnement du code pour optimiser les étapes de packaging de Vue
Navigation de routage Vue2 et packaging de l'intercepteur axios
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Nous recevons généralement des fichiers PDF du gouvernement ou d'autres agences, certains avec des signatures numériques. Après avoir vérifié la signature, nous voyons le message SignatureValid et une coche verte. Si la signature n'est pas vérifiée, la validité est inconnue. La vérification des signatures est importante, voyons comment le faire en PDF. Comment vérifier les signatures au format PDF La vérification des signatures au format PDF le rend plus fiable et le document est plus susceptible d'être accepté. Vous pouvez vérifier les signatures dans les documents PDF des manières suivantes. Ouvrez le PDF dans Adobe Reader Cliquez avec le bouton droit sur la signature et sélectionnez Afficher les propriétés de la signature Cliquez sur le bouton Afficher le certificat du signataire Ajoutez la signature à la liste des certificats de confiance à partir de l'onglet Confiance Cliquez sur Vérifier la signature pour terminer la vérification.

1. Après avoir ouvert WeChat, cliquez sur l'icône de recherche, entrez dans l'équipe WeChat et cliquez sur le service ci-dessous pour entrer. 2. Après avoir entré, cliquez sur l'option outil libre-service dans le coin inférieur gauche. 3. Après avoir cliqué, dans les options ci-dessus, cliquez sur l'option de déblocage/appel pour vérification auxiliaire.

Comment mettre en œuvre la double connexion WeChat sur les téléphones mobiles Huawei ? Avec l’essor des réseaux sociaux, WeChat est devenu l’un des outils de communication indispensables dans la vie quotidienne des gens. Cependant, de nombreuses personnes peuvent rencontrer un problème : se connecter à plusieurs comptes WeChat en même temps sur le même téléphone mobile. Pour les utilisateurs de téléphones mobiles Huawei, il n'est pas difficile d'obtenir une double connexion WeChat. Cet article explique comment obtenir une double connexion WeChat sur les téléphones mobiles Huawei. Tout d'abord, le système EMUI fourni avec les téléphones mobiles Huawei offre une fonction très pratique : l'ouverture d'une double application. Grâce à la fonction de double ouverture de l'application, les utilisateurs peuvent simultanément

Le langage de programmation PHP est un outil puissant pour le développement Web, capable de prendre en charge une variété de logiques et d'algorithmes de programmation différents. Parmi eux, l’implémentation de la séquence de Fibonacci est un problème de programmation courant et classique. Dans cet article, nous présenterons comment utiliser le langage de programmation PHP pour implémenter la séquence de Fibonacci et joindrons des exemples de code spécifiques. La suite de Fibonacci est une suite mathématique définie comme suit : le premier et le deuxième élément de la suite valent 1, et à partir du troisième élément, la valeur de chaque élément est égale à la somme des deux éléments précédents. Les premiers éléments de la séquence

Comment mettre en œuvre la fonction de clonage WeChat sur les téléphones mobiles Huawei Avec la popularité des logiciels sociaux et l'importance croissante accordée à la confidentialité et à la sécurité, la fonction de clonage WeChat est progressivement devenue le centre d'attention. La fonction de clonage WeChat peut aider les utilisateurs à se connecter simultanément à plusieurs comptes WeChat sur le même téléphone mobile, ce qui facilite la gestion et l'utilisation. Il n'est pas difficile de mettre en œuvre la fonction de clonage WeChat sur les téléphones mobiles Huawei. Il vous suffit de suivre les étapes suivantes. Étape 1 : Assurez-vous que la version du système de téléphonie mobile et la version de WeChat répondent aux exigences. Tout d'abord, assurez-vous que la version de votre système de téléphonie mobile Huawei a été mise à jour vers la dernière version, ainsi que l'application WeChat.

PHP8 est la dernière version de PHP, apportant plus de commodité et de fonctionnalités aux programmeurs. Cette version met un accent particulier sur la sécurité et les performances, et l'une des nouvelles fonctionnalités remarquables est l'ajout de capacités de vérification et de signature. Dans cet article, nous examinerons de plus près ces nouvelles fonctionnalités et leurs utilisations. La vérification et la signature sont des concepts de sécurité très importants en informatique. Ils sont souvent utilisés pour garantir que les données transmises sont complètes et authentiques. La vérification et les signatures deviennent encore plus importantes lorsqu'il s'agit de transactions en ligne et d'informations sensibles, car si quelqu'un est capable de falsifier les données, cela pourrait potentiellement

Guide d'implémentation des exigences du jeu PHP Avec la popularité et le développement d'Internet, le marché des jeux Web devient de plus en plus populaire. De nombreux développeurs espèrent utiliser le langage PHP pour développer leurs propres jeux Web, et la mise en œuvre des exigences du jeu constitue une étape clé. Cet article explique comment utiliser le langage PHP pour implémenter les exigences courantes du jeu et fournit des exemples de code spécifiques. 1. Créer des personnages de jeu Dans les jeux Web, les personnages de jeu sont un élément très important. Nous devons définir les attributs du personnage du jeu, tels que le nom, le niveau, la valeur de l'expérience, etc., et fournir des méthodes pour les exploiter.

Dans le domaine actuel du développement logiciel, Golang (langage Go), en tant que langage de programmation efficace, concis et hautement simultané, est de plus en plus favorisé par les développeurs. Sa riche bibliothèque de normes et ses fonctionnalités de concurrence efficaces en font un choix de premier plan dans le domaine du développement de jeux. Cet article explorera comment utiliser Golang pour le développement de jeux et démontrera ses puissantes possibilités à travers des exemples de code spécifiques. 1. Avantages de Golang dans le développement de jeux. En tant que langage typé statiquement, Golang est utilisé dans la construction de systèmes de jeux à grande échelle.
