У меня есть приложение узла. Когда клиент направляется к ('/login') и использует действительные учетные данные, я генерирую токен JWT с некоторым сроком действия и маршрутами на следующую страницу. И если пользователь пытается получить доступ к любому маршруту, например: ('/home') сразу после входа в систему, если срок действия токена не истек, он должен иметь возможность маршрутизировать напрямую. Если срок действия токена истек, мне нужно перейти к ('/login').
Но в настоящее время он работает частично, если токен доступен, он может напрямую перейти к ('/home). Но когда я открываю тот же маршрут в совершенно другом окне браузера/инкогнито, он все еще может маршрутизировать и берет предыдущий токен. Которого быть не должно и он должен быть перенаправлен на ('/login'). Как мы можем сделать этот сценарий.
Ниже мой код, который я пробовал
const SECRET = 'server secret';
var token;
router.post('/auth', passport.authenticate(
'local', {
session: false
}),generateToken, inserttoken,respond);
function generateToken(req, res, next) {
token = jwt.sign({
id: req.user.id,
},SECRET, {
expiresIn: 60
});
req.token = token;
next();
}
//In inserttoken() Iam inserting token value in db.
router.get('/home', function(req, res){
jwt.verify(token, 'server secret', function(err, decoded) {
if (err) {
console.log("token expired");
res.redirect('/');
}
else{
res.render('index.html');
}
});
});
Любая помощь приветствуется. Заранее спасибо!