2017-05-01 1 views
1

L'objectif est de créer un système de profil utilisateur pour mon application Web. Un utilisateur pourrait se connecter, maintenir une session et voir son profil. Après avoir lu divers tutoriels en ligne sur la façon de faire cela, je me sens un peu perdu. Tout le monde utilise des bibliothèques différentes et, en tant que personne nouvelle dans le développement web, ce que fait chaque bibliothèque n'est pas clair. J'ai vu les bibliothèques suivantes utilisées, quelqu'un peut-il expliquer le flux des interactions entre les utilisateurs et le profil et où chaque bibliothèque entre-t-elle?Profils et sessions utilisateur Nodejs

passport 
passport-local 
bcrypt-nodejs 
connect-flash 
express-session 

jsonwebtoken 
express-jwt 

morgan 
cookie-parser 

Répondre

1

Une façon de commencer votre apprentissage peut être à: https://www.youtube.com/watch?v=Z1ktxiqyiLA J'y ai appris comment utiliser la plupart des plug-ins de votre question.

Ok, donc sur les plug-ins:

  • passport passeport est un plugin Node.js qui est utilisé habituellement avec express qui fonctionne comme un middleware responsable du authorization et authentication

  • passport-local - est un plugin pour passport, plus techniquement une stratégie d'authentification qui est généralement utilisée avec une base de données ou un fichier de configuration.

  • bcrypt-nodejs est généralement utilisé pour crypter les mots de passe dans la base de données (mais il est beaucoup plus puissant que cela), n'est pas cool d'enregistrer le mot de passe en texte brut. - est utilisé pour les messages flash apparaissant sur une page "L'utilisateur a été ajouté avec succès", "Informations d'identification d'utilisateur incorrectes" ou tout autre message d'erreur ou de succès que vous souhaitez afficher sur une page.

  • express-session - est un middleware express qui est chargé de stocker la session de l'utilisateur. - jwt est utilisé pour créer un jeton que vous utiliserez pour identifier si un utilisateur a été authentifié ou non.

  • express-jwt - un express middleware pour jsonwebtoken

  • cookie-parser - un middleware express pour analyser les cookies

  • morgan - juste un service de connexion ing.

Ok, donc vous devez comprendre un peu de théorie ici: stratégie

  • passport avec passport-local est un mécanisme d'authentification statefull qui est censé sauver si l'utilisateur est authenicated ou non dans une session, si vous redémarrez le serveur node.js si vous n'avez pas persisté vos sessions dans un service tiers en tant que base de données/fichier etc ... vous perdrez les sessions. Est un mécanisme d'authentification sans état, vous n'avez pas besoin d'enregistrer quoi que ce soit sur votre serveur seulement la "clé secrète".L'architecture sans état a quelques avantages cool car elle favorise l'évolutivité horizontale, vous pouvez avoir des nœuds sans fin qui sauront comment analyser le jeton envoyé et comprendre si l'utilisateur est connecté ou non. Dernièrement je vais avec jwt comme authentification.

+0

Réponse fantastique, ça aide beaucoup! Puis-je clarifier un certain nombre de choses? Dans la vidéo que vous avez liée, ils n'utilisent pas le module morgan, morgan n'est-il pas nécessaire? La vidéo n'utilise pas jsonwebtoken mais utilise express-session. Dois-je choisir entre jsonwebtoken et express-session? Vous avez dit le passeport est une authentification statefull et jsonwebtoken est un mécanisme d'authentification sans état, mais j'ai vu des tutoriels où les deux modules sont utilisés? – user3768533

+0

Yo peut les utiliser mais généralement ils vont tout seul, j'utilise json web token pour les api-s, et pour les applications monolitiques je vais avec passeport. Morgan est utilisé pour enregistrer et afficher les journaux, c'est un outil de débogage. –

+0

Le didacticiel vidéo utilise des guidons. Pour autant que je sache, si je veux utiliser AngularJS ou ReactJS, je n'utiliserai probablement pas de guidon. Dois-je toujours utiliser la solution dans la vidéo avec passeport et sessions express? – user3768533