Knoten bCrypt.compareSync

Erstelle ich ein Benutzer-login. Ich bin in der Lage, den Benutzer anzumelden und, wenn der Benutzer singt sein Passwort verschlüsselt, bevor es in der Datenbank gespeichert wird.

Wenn sich der Benutzer versucht, sich einzuloggen, erhalte ich ein "ungültiges Kennwort".

Dies ist, weil es ist der Vergleich der Eingabe des Benutzers in einem verschlüsselten Passwort in der Datenbank. Beispiel, wenn das Kennwort ist 1234, dann in der Datenbank gespeichert wird, als "$2a$104$0301". Wenn der Benutzer versucht, sich in die Benutzer-Eingabe, die mit "1234" ist im Vergleich zu "2a$104$0301". Wie würde ich das beheben?

Hier ist mein code für den login:

var LocalStrategy = require('passport-local').Strategy;
var User = require('../Models/users.js');
var bcrypt = require('bcrypt-nodejs');

module.exports = function(passport){
passport.use('login', new LocalStrategy({
     passReqToCallback : true
 },
    function(req, username, password, done){
        User.findOne({'username' : username},
        function(err, user){
            if(err)
                return done(err);
            if(!user){
                console.log('User Not Found with username: '+username);
                return done(null, false,
                    req.flash('message', 'User Not Found.'));
            }
            if (!isValidPassword(user, password)){
                console.log('Invalid Password');
                return done (null, false,
                    req.flash('message', 'Invalid Password'));
            }
            return done(null, user);
        }
    );
})
);
var isValidPassword = function(user, password){
    var result = bcrypt.compareSync(password, user.password);
    if (result) {
     console.log("Password correct");
    } else {
    console.log("Password wrong");
    }
    return result;

 }
}
Sie sollten nicht compareSync in einem server, oder irgendetwas anderes Sync. Du wirst den server blockiert, von der Behandlung der anderen Anforderungen, die Art und Weise.
... das hat nichts zu tun mit seiner Frage.

InformationsquelleAutor Suji | 2015-01-02

Schreibe einen Kommentar