5

MYSQL が例外をスローする場合を除いて動作している MYSQL(sequelize を使用)で LocalStrategy を使用しています (テストのために、MYSQL サーバーをシャットダウンしました)。return done(error)サーバーをクラッシュさせる例外をスローするコールバック。

これが私のコードです:

passport.use(new LocalStrategy({usernameField: 'email', passwordField: 'password'},
    function (email, password, done) {
        db.User.find({where: {email: email}}).done(function (error, user) {
            if(error) return done(error);

            if (!user) return done(null, false, {message: 'unknown user'});

            //validate password
            if (user.password != password) {
                return done(null, false, {message: 'invalid password'});
            }
            //all ok
            return done(null, user);
        });
    }
));

そして例外:

TypeError: Property 'next' of object #<Context> is not a function
    at Context.actions.error

私は何を間違っていますか?ありがとう!

編集:

    req._passport.instance.authenticate('local', function (err, user, info) {
        if (err) return validator.emit('exception', err);

        if (!user) {
            validator.result.errors.push('Username and password combination not found.');
            validator.emit('response');
        } else {
            req.login(user, function (error) {
                if (error) return validator.emit('exception', error);

                validator.emit('response');
            });
        }
    })(req, res);
4

1 に答える 1