2016-09-24 4 views
0

Ich versuche derzeit, einen einfachen Anmeldeprozess mit pass.js zu implementieren. Ich verwende die localStrategy in Kombination mit einem Dynamob für das Speichern von Benutzeranmeldeinformationen. Das Hinzufügen eines neuen Benutzers zur Datenbank funktioniert einwandfrei, aber aus irgendeinem Grund kehren die Anmelde-Routen immer mit failureRedirect zurück. Ich bin neu in node.js und pass.js, also könnte ich ein Konzept oder etwas missverstehen. Also jede Hilfe oder Richtung, die zeigen würde, wäre großartig.Registrierungsroute mit pass.js und dynamodb

Danke :-)

Anmelden Strecke

app.post('/signup', passport.authenticate('local-signup', { 
     successRedirect : '/index', 
     failureRedirect : '/signup1', 
     failureFlash : true 
    })); 

Verfahren zum Erstellen eines neuen Benutzers gefunden

passport.use('local-signup', new LocalStrategy({ 
     override with email 
     usernameField : 'email', 
     passwordField : 'password', 
     passReqToCallback : true 
    }, 



    function(req, email, password, done) { 

     console.log('signup-route') 
     process.nextTick(function() { 

     // find a user whose email is the same as the forms email 
     // we are checking to see if the user trying to signup already exists 
     User.readObject(email,function (err, user) { 



      if (!(err instanceof errors.NotFoundError) && err){ 

      console.log(err) 
      return done(err) 
      } 

      // check to see if theres already a user with that email 
      if (user) { 
       console.log("taken") 
       return done(null, false, req. flash('signupMessage', 'That email is already taken.')); 
      } else { 

       var data = { 
        email: email, 
        password : password 
       } 
       User.writeObject(null,data,function(err){ 
        console.log(err); 
       }) 
       console.log("write") 
       //should trigger successRedirect 
       return done(null, user) 
      } 

     }) 

     }); 

    })); 
+0

Warum brauchen Sie Passportjs, um sich anzumelden, während Sie einen Benutzer direkt erstellen und Passpjs nur für die Authentifizierung verwenden können? –

+0

Nach der Anmeldung möchte ich direkt eine Sitzung für den Benutzer erstellen. So ist die Anmeldung nur eine Möglichkeit, sich für einen Benutzer zu authentifizieren, der keine Berechtigungsnachweise besitzt. –

+0

@Arif Khan hat vergessen dich in meiner Antwort zu markieren –

Antwort

0

ich den Fehler. Im else-Zweig gebe ich done(null, user) zurück.

Dies sollte done(null, data) sein, da kein Benutzerobjekt definiert ist.