node js,passport js 和 sequelize with passport-local
nodejs, passportjs and sequelize with passport-local
我需要一些帮助来解决我不明白的问题。
首先,这是我得到的错误:
Error: Route.post() requires callback functions but got a [object Undefined]
我尝试使用 passport-local 来保护我的 API。
我这样称呼 API:
router.route("/login")
.post(passport.authenticate('local', {session: false}) ,login.get);
getToken 函数如下所示:
function get(req, res) {
res.send([{"stack": "overflow"}]);
}
这是我的策略:
var local = new LocalStrategy(options,
function(username, password, done) {
models.user.findOne({where:{ username: username}}).then(function(err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false);
}
return done(null, user);
});
});
我的设置有什么问题?
可能是因为 login.get 实际上是未定义的。
尝试这样的事情:
router.route('/login')
.post(passport.authenticate('local', {session: false}),
function (req, res, next) {
// callback here
});
或者另一种方式可以是:
router.post('/login', passport.authenticate('local', {session: false}), function (req, res) { ... });
我需要一些帮助来解决我不明白的问题。
首先,这是我得到的错误:
Error: Route.post() requires callback functions but got a [object Undefined]
我尝试使用 passport-local 来保护我的 API。
我这样称呼 API:
router.route("/login")
.post(passport.authenticate('local', {session: false}) ,login.get);
getToken 函数如下所示:
function get(req, res) {
res.send([{"stack": "overflow"}]);
}
这是我的策略:
var local = new LocalStrategy(options,
function(username, password, done) {
models.user.findOne({where:{ username: username}}).then(function(err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false);
}
return done(null, user);
});
});
我的设置有什么问题?
可能是因为 login.get 实际上是未定义的。 尝试这样的事情:
router.route('/login')
.post(passport.authenticate('local', {session: false}),
function (req, res, next) {
// callback here
});
或者另一种方式可以是:
router.post('/login', passport.authenticate('local', {session: false}), function (req, res) { ... });