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) { ... });