Я создаю простое приложение с двумя страницами, то есть с логином и защищенной страницей. У меня есть промежуточное ПО, которое проверяет, вошел ли пользователь в систему при попытке доступа к маршруту / защищен, если пользователь вошел в систему, ему предоставляется доступ, иначе перенаправленный на / login
, если пароли совпадают, пользователь теперь, учитывая сеанс и перенаправленный на / protected, мои коды не работают, он продолжает перенаправлять меня на / login вместо / protected, даже если данные для входа верны
вот мой код
const express = require('express');
const app = express();
const port = 8080;
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const multer = require('multer');
const upload = multer();
const session = require('express-session');
const cookieParser = require('cookie-parser');
mongoose.connect("mongodb://localhost/Barclays_Bank",
{useUnifiedTopology:true,useNewUrlParser:true,useFindAndModify:false,useCreateIndex:true});
app.set('view engine','pug');
app.set('views','./views');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(upload.array());
app.use(cookieParser());
app.use(session({secret:"secret",cookie:{maxAge:60000},resave:true, saveUninitialized:true}));
var staffschema = mongoose.Schema({
email:{
type:String,
unique:true,
},
password:{
type:String,
password:String,
}
})
var staff = mongoose.model("staff",staffschema);
//Route To Render login Page
app.get('/login',(req,res)=>{
res.render('login');
});
//Route To Handle Post request on login page
app.post('/login',(req,res)=>{
staff.findOne({email:req.body.email})
.then((result)=>{
if(req.body.password === result.password){
req.session.currentstaff = staff;
res.redirect('/login');
}
else{
console.log('User Not Found!!!');
}
})
.catch((err)=>{
console.log("Error!!!");
})
})
//Middleware Function
ensureIsLoggedIn =(req,res,next)=>{
if(req.session.currentstaff){
next();
}else{
res.redirect('/login');
}
};
//Route To Render Protected Page
app.get('/protected',ensureIsLoggedIn,(req,res)=>{
res.render('protected');
})
//Route to handle post request on logout
app.post('/logout',(req,res)=>{
req.session.destroy((err)=>{
res.redirect('/login');
console.log('User loggedout');
})
})
//port
app.listen(port,()=>{
console.log('App is running...');
})