0
私はpassport-localで作業していますが、私が表現しようとすると、エラーが表示されます:req.flashは関数ではありません。私はそれを解決する方法を探したが、これは私の設定とコードで何も'req.flash'は関数ではありません
を見出されていない:
App.js
`...imports like body parser, express, etc
var passport = require('passport');
var flash = require('connect-flash');
...app.js code
app.use(session({
key : config.session.key,
secret : config.session.secret,
resave : false,
saveUninitialized : false,
cookie: { maxAge: 60000 }
}));
app.use(flash());
app.use(passport.initialize());
app.use(passport.session());`
accountController.js
`var mongoose = require('mongoose');
var flash = require('connect-flash');
var User = require('../models/userSchema');
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
module.exports = function(passport){
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
passport.use(new LocalStrategy({
passReqToCallback : true
},function(req, username, password, done){
User.findOne({ app_id : username }, function(err, user){
if(err) { return done(err); }
if(!user){
return done(null, false, { message: 'Id o contraseña incorrectos'});
}
if(!user.validPassword(password)){
return done(null, false, { message: 'Id o contraseña incorrectos'});
}
return done(null, user);
});
}
));
};`
account.js(経路)
`var express = require('express');
var router = express.Router();
var passport = require('passport');
require('../controller/accountController')(passport);
var controller = require('../controller/accountController');
router.route('/(:err)?')
/*.get(controller.accountPage)*/
.post(passport.authenticate('local',{
successRedirect: '/dashboard',
failureRedirect: '/acount',
failureFlash: true
}));
module.exports = router;