2014-06-24 12 views
6

I am learning node ed express. Sto cercando di creare un'applicazione molto semplice che consenta semplicemente a un utente di accedere utilizzando json. Quindi manterrà la sessione fino alla disconnessione. Con asp.net questo è un gioco da ragazzi basta configurarlo nella configurazione e chiamare ...Confusione sessione Passport.js

Auth.Login(username,pasword) 

Quando log out basta fare:

Auth.logout() 

e se avete bisogno di controllare se sono loggati semplicemente:

Auth.IsLoggedIn() 

Oppure codice in tal senso. Beh, sembra che Passport per il nodo non sia così semplice. Ho passato tutta la notte su come farlo funzionare ...

app.post('/authentication/login', function handleLocalAuthentication(req, res, next) { 

    passport.authenticate('local', function(err, user, info) { 

     // Manually establish the session... 
     req.login({username:'[email protected]',password:'password'}, function(err) { 
      if (err) return next(err); 
      return res.json({ 
       message: 'user authenticated' 
      }); 
     }); 

    })(req, res, next); 
}); 

app.get('/authentication/isauthenticated',function(req,res){ 

    console.log(req.isAuthenticated()); 

}) 

passport.use(new LocalStrategy(
    function(username, password, done) { 

     return done(null, {username:'ss',password:'sffds'}); 
    } 
)); 

Così ora ho nessun cookie, nessuna sessione persisteva quando faccio il login e poi ha colpito la /authentication/isAuthenticated URL. Non riesco nemmeno a fermare un breakpoint nella strategia ...

passport.use(new LocalStrategy(
    function(username, password, done) { 

     console.log('ggg'); 
     return done(null, {username:'ss',password:'sffds'}); 

    } 
)); 

Sto guardando la soluzione sbagliata per questo? Dovrei girare la mia autenticazione o qualcosa con una funzione middleware di base?

risposta

3

Check out this tutorial. È davvero fantastico e mi ha aiutato molto.

Ed ecco il mio repository che ha implementato l'autenticazione del passaporto con gli utenti archiviati in mongodb tramite mangusta e password hash. Clonalo o semplicemente verificarlo, dovrebbe aiutare. https://github.com/thyforhtian/auth_base.

+0

Grazie mi ha davvero aiutato. – Exitos

+0

Sono contento di averlo fatto. Grazie – thyforhtian

+0

@thyforhtian il collegamento a "questo tutorial" sembra essere rotto – peralmq

Problemi correlati