【发布时间】:2016-06-14 22:40:33
【问题描述】:
我是 express 的新手,我正在尝试使用护照实现一些身份验证方法。这对我来说似乎是最好的选择,我开始阅读几个教程,现在我有了这个不寻常的代码。 显然策略 registerStrategy 没有被使用,因为 console.log("log"); 没有显示在服务器的控制台中。 节点不会抛出错误。
//localStrategy.js
var registerStrategy = new localStrategy(
function(req, res, done){
console.log("log");
var user = {
username: req.user.username,
password: req.user.password,
name: req.body.user.name,
lastname: req.body.user.lastname,
email: req.body.user.email,
event_time: req.body.user.event_time
};
var usernameExists = true, emailExists = true;
var tasks = [
function(cb){
db.usernameExists(user.username, function(err, exists){
if(err) return cb(err);
usernameExists = exists;
cb();
});
},
function(cb){
db.emailExists(user.email, function(err, exists){
if(err) return cb(err);
emailExists = exists;
cb();
});
}
];
async.parallel(tasks, function(err){
if(err) return done(err);
if(usernameExists || emailExists){
return done(null, usernameExists, emailExists);
}
done(null, null, null);
});
}
);
app.use(session(sessionData));
passport.use("local-register", registerStrategy);
//routes.js
app.post("/api/register", function(req, res){
passport.authenticate("local-register")(req, res,
function(err, usernameExists, emailExists){
if(err) throw err;
if(usernameExists){
return res.status(401).json({ err: "User exists"});
}
else if(emailExists){
return res.status(401).json({ err: "Email exists"});
}
res.status(200).json({status: "Succesful"});
}
);
});
我的错误在哪里?
【问题讨论】:
-
你检查过控制台错误吗?是说 localStrategy undefined 吗?是否已导入所需文件。
-
是的,我已经检查过了,没有错误。我导入了所有需要的文件或库。你熟悉我所说的策略吗?与 ("local-register")(...) ?认为这可能是问题
标签: node.js passport.js passport-local