【发布时间】:2016-05-09 23:32:06
【问题描述】:
我尝试将护照与 express、mongoose 和 jsonwebtoken 一起使用,但在调用 /api 时没有得到响应。请说出我缺少的东西。
index.js:
获取护照和本地策略依赖项:
var passport = require("passport"),
LocalStrategy = require("passport-local").Strategy;
配置护照:
app.use(passport.initialize());
passport.use(new LocalStrategy({
usernameField: "email"
},
function (username, password, done) {
User.findOne({email: username}, function (err, user) {
if (err) return done(err);
if (!user) {
return done(null, false, {message: "User doesnt exist"});
}
if (!user.comparePassword(password)) {
return done(null, false, {message: "Wrong password!"});
}
return done(null, user);
});
})
);
和路线:
app.use("/api/login", require("./controllers/login"));
在我的./controllers/login.js:
function loginHandler(req, res, next) {
passport.authenticate("local", function(err, user, info) {
if (err) return next(err);
...
var token = jwt.sign({name: user.email}, req.app.get("superSecret"),{expiresIn: 60000});
return res.json({token: token});
});
}
【问题讨论】:
标签: node.js express mongoose passport.js passport-local