Dino Geek, cerca di aiutarti

Come autenticare gli utenti in Node.js?


Ci sono svariati moduli middleware tra cui scegliere per l’autenticazione dell’utente in un’applicazione Node.js, tra cui Passport, express-session, cookie-parser, ecc.

Uno dei più popolari è Passport. Di seguito è illustrato come utilizzare Passport per l’autenticazione dell’utente.

1. Installa Passport e il suo middleware:

npm install passport passport-local

1. Importa Passport in app.js:

const passport = require(‘passport’); app.use(passport.initialize());

1. Usa uno dei tanti strategies forniti da Passport. Ad esempio, per l’autenticazione locale:

const LocalStrategy = require(‘passport-local’).Strategy; passport.use(new LocalStrategy( function(username, password, done) { User.findOne({ username: username }, function (err, user) { if (err) { return done(err); } if (!user) { return done(null, false, { message: ‘Incorrect username.’ }); } if (!user.validPassword(password)) { return done(null, false, { message: ‘Incorrect password.’ }); } return done(null, user); }); }));

1. Creare una sessione utilizzando express-session:

const expressSession = require(‘express-session’); app.use(expressSession({ secret: ‘keyboard cat’, resave: false, saveUninitialized: false }));

1. Configura Passport per utilizzare le sessioni:

app.use(passport.initialize()); app.use(passport.session());

1. Serializza e deserializza l’utente per mantenerlo nella sessione:

passport.serializeUser(function(user, done) { done(null, user.id); }); passport.deserializeUser(function(id, done) { User.findById(id, function (err, user) { done(err, user); }); });

1. Ora sei pronto per l’autenticazione. Utilizza `passport.authenticate()`, specificando la strategia. Ad esempio, per il login dell’utente:

app.post(‘/login’, passport.authenticate(‘local’, { successRedirect: ‘/’, failureRedirect: ‘/login’, failureFlash: true }) );

Genera semplicemente articoli per ottimizzare il tuo SEO
Genera semplicemente articoli per ottimizzare il tuo SEO





DinoGeek offre articoli semplici su tecnologie complesse

Vuoi essere citato in questo articolo? È molto semplice, contattaci a dino@eiki.fr

CSS | NodeJS | DNS | DMARC | MAPI | NNTP | htaccess | PHP | HTTPS | Drupal | WEB3 | LLM | Wordpress | TLD | Nome dominio | IMAP | TCP | NFT | MariaDB | FTP | Zigbee | NMAP | SNMP | SEO | E-Mail | LXC | HTTP | MangoDB | SFTP | RAG | SSH | HTML | ChatGPT API | OSPF | JavaScript | Docker | OpenVZ | ChatGPT | VPS | ZIMBRA | SPF | UDP | Joomla | IPV6 | BGP | Django | Reactjs | DKIM | VMWare | RSYNC | Python | TFTP | Webdav | FAAS | Apache | IPV4 | LDAP | POP3 | SMTP

| Whispers of love (API) | Déclaration d'Amour |






Avviso Legale / Condizioni Generali di Utilizzo