Node.js 在NodeJs中取消Passport序列化

Node.js 在NodeJs中取消Passport序列化,node.js,express,passport.js,Node.js,Express,Passport.js,我正在使用Passport在Nodejs中开发登录系统,一切正常,但当我点击Login时,它会将我带到successRedirect中指定的路径,但会显示一条错误消息 错误消息是下面的函数 function deserialized(e, u) { pass(i + 1, e, u); } 在控制台中,我也收到了同样的消息 处理请求 module.exports.Login=function(req,res,next){ passport.authenticate(

我正在使用Passport在Nodejs中开发登录系统,一切正常,但当我点击Login时,它会将我带到successRedirect中指定的路径,但会显示一条错误消息 错误消息是下面的函数

function deserialized(e, u) {
      pass(i + 1, e, u);
    }

在控制台中,我也收到了同样的消息

处理请求

module.exports.Login=function(req,res,next){
   passport.authenticate('local',{
       successRedirect:'/Dashboard',
       failureRedirect:'/Login',
       failureFlash:true
   })(req,res,next)

   }
passport.js文件

const LocalStrategy = require('passport-local').Strategy;
const bcrypt = require('bcryptjs');
const bodyparser = require('body-parser')
const conn = require('../Model/db');
const flash=require('express-flash')


module.exports = function(passport) {

passport.use(new LocalStrategy({usernameField:'Email'},function(Email,password,done){
 var select=`SELECT * FROM user WHERE email='${Email}'`;
 conn.query(select,(err,user)=>{
     if(err) throw err;   
     if(user.length == 0 )
     {

         done(null,false,{message:'incorrect Login Information'})

     }
     else{
         bcrypt.compare(password,user[0].Password,(err,resdb)=>{
             if(err) throw err;
             if(resdb==true){

                 done(null,user,{message:'Successfully loged in'})   
             }
             else{

                 done(null,false,{message:'incorrect Login Information'})

           }
         })

     }


 })

}))

passport.serializeUser((user,done)=>{
 done(null,user[0].id)
})



passport.deserializeUser(function(id,err){
 if(err) throw err;
   var select=`SELECT * FROM user WHERE id='${id}'`;
conn.query(select,(err,user)=>{
   done(err,user)
})
})

}


尝试使用此选项来处理请求:


app.post('/Login', passport.authenticate('local', { successRedirect: 'Dashboard', failureRedirect: '/Login', failureFlash: 
然后,您可以使用此选项查看用户是否已登录:

function loggedIn(req, res, next) {
  if (req.isAuthenticated()) {
    next()
  } else {
    res.render('Login.ejs')
  }
}
因此:


这只会保护路线,不会解决我的问题

app.get('/', loggedIn, (req, res) => {
  res.render('Dashboard.ejs', { email: req.user.email })
})