取自 passport.js 文档;例如,将 usernameField 更改为用户名,将 passwordField 更改为密码。如果您愿意,您可以使用数据库结果的登录结果变量分配来切换用户对象。
var username = ibm d2 query results for username;
var password = ibm d2 query results for password;
var User = {//login form username/password
username: '', //whatever they entered will go here,
password: ''
};
.... // 以上作为参数传递给函数(用户名,密码,完成){
用户是从您的登录表单返回的对象。findOne 是一个 passportJs 函数,它将您的用户名属性的值与您分配给变量用户名的数据库查询结果进行比较。如果匹配成功而不是错误,则将结果作为用户对象传递给下一个函数。
function(username, password, done) {
User.findOne({ username: username }, function(err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));
如果不存在错误并且找到匹配项,则函数返回用户对象结果。请注意,这是错误优先样式,因此他为成功的结果返回空值,而不仅仅是结果。在这种情况下为 null 意味着没有错误。