私はこの質問が以前に尋ねられたことを知っていますが、私は適切な答えを見つけることができませんでした。 コンソールエラーです。パスポートが投げているuser.authenticateは関数ではありません
TypeError: user.authenticate is not a function
at /home/sinnedde/WebstormProjects/web-services/config/strategies/local.js:24:23
ここには、ユーザー名とパスワードが正しいかどうかを確認するために使用されるlocal.jsがあります。
var passport = require('passport'),
LocalStrategy = require('passport-local').Strategy,
User = require('mongoose').model('User');
module.exports = function() {
passport.use(new LocalStrategy(function (username, password, done) {
User.findOne({
username: username
}, function (err, user) {
if (err) {
return done(err);
}
if (!user) {
return done(null, false, {
message: 'Invalid Username or Password'
});
}
if (!user.authenticate(password)) {
return done(null, false, {
message: 'Invalid Username or Password'
});
}
return done(null, user);
});
}));
};
ここにコントローラのsigninメソッドがあります。
exports.signin = function (req, res, next) {
passport.authenticate('local', function (err, user, info) {
if (err || !user) {
res.send(info);
} else {
res.json({
status: 'true',
message: 'Logged In'
});
}
})(req, res, next);
};
郵便配達員からの依頼です。ユーザー名が有効でない場合、私は適切な応答を得ていますが、パスワードが無効であれば、上記のエラーが発生します。私は何が間違っているのか分からない。助けてください。
ありがとうございます。しかし、私はパスポートのローカル戦略を使ってログインを認証しています。私は以前にそれをしていた、問題はなかった。しかし、今私はこれを取得しています。コードに問題はありますか? –
多分このリンクをチェックしてくださいhttp://mherman.org/blog/2015/01/31/local-authentication-with-passport-and-express-4/#.WLxOrhIrJ60 – hya
私はMongooseパスポートプラグインを試しました。しかし、それは新しいエラーを投げている '' cbは関数ではない ' –