我想要的是
当我进入 / test 时,它首先检查它是否登录到* / test /,如果不是,则进入 / login
index.js
router.get('/test', issignin, (req, res, next)=>{
res.render('test');
});
//............
router.get('/login', (req, res, next)=>{
var messageLoginErr = req.flash('signinError')
res.render('login', {messages : messageLoginErr});
});
router.post('/login', passport.authenticate('local-signin', {
session: false,
successRedirect: '/',
failureRedirect: '/login',
failureFlash: true,
}));
//logout
router.get('/logout', (req, res, next)=>{
req.logOut()
res.redirect('/test')
console.log(req.isAuthenticated())
});
function issignin(req, res, next){
if(! req.isAuthenticated()){
//res.redirect('login');
return;
}
next();
}
app.js
//session
app.use(session({
secret : 'blablabla',
saveUninitialized: true,
resave: true
}));
探针是,当我转到localhost:3000/test
时,它会自动将我重定向到localhost:3000/login
,然后当我再次登录并转到localhost:3000/test
时,它也会重定向无论我是否进入localhost:3000/login
(是否从当前帐户注销 ),我都必须localhost:3000/logout
登录,从所有方面来说,我都需要登录页面
我为此使用了(isAuthenticated()) passport.js