MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Node.js e Passport Object non hanno un metodo validPassword

Stai usando

if (!user.validPassword(password)) {
    return done(null, false, { message: 'Incorrect password.' });
}

ma non hai definito validPassword metodo. Allegalo al tuo schema:

var authSchema = mongoose.Schema({ 
    username: 'string',
    password: 'string'
});
authSchema.methods.validPassword = function( pwd ) {
    // EXAMPLE CODE!
    return ( this.password === pwd );
};

MODIFICA Hai anche definito in modo errato lo schema. Dovrebbe essere:

var authSchema = mongoose.Schema({ 
    username: String,
    password: String
});

Nota che entrambi username e password dovrebbe essere String digita oggetti, non stringhe "string" , se capisci cosa intendo. :)