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)
}
})
});
}));
Warum brauchen Sie Passportjs, um sich anzumelden, während Sie einen Benutzer direkt erstellen und Passpjs nur für die Authentifizierung verwenden können? –
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. –
@Arif Khan hat vergessen dich in meiner Antwort zu markieren –