Как выйти аутентифицировать пользователя - PullRequest
0 голосов
/ 09 января 2019

Я успешно захожу в систему /login и могу показать информацию о моем маршруте /profile.

Теперь я пытаюсь /logout аутентифицировать пользователя, но, похоже, он не работает. При попытке пройти маршрут выхода из системы ничего не происходит. Срок действия токена JWT не истекает, поэтому данные /profile присутствуют даже после нажатия кнопки «Выйти».

//logout testing
router.post('/logout' , checkAuth, (req, res) => {     
            req.logOut();
            res.status(200).send(["logged out"]).redirect('/login');
});

Это мой / профиль: -

router.get('/profile', checkAuth, (req, res, data) =>{  
    User.find(req.userData, function(err, users) {
    res.send(req.userData);
  });
});

Я хочу, чтобы выход был глобальным. Пользователь должен выйти из системы с каждого устройства. Пользователь вошел в систему

.

1 Ответ

0 голосов
/ 09 января 2019

Когда вы используете JWT, ваш сервер не имеет состояния, у вас нет сеанса на вашем сервере. Вы должны удалить сохраненный JWT со стороны клиента или (но я не фанат этой техники, это не очень хорошая практика) вы можете сохранить список «отозванных» JWT на стороне сервера, когда вы выходите из системы и проверяете, токен, отправленный клиентом, находится в этом списке. Вы также можете сохранить дату последнего выхода из системы и проверить, является ли дата JWT самой старой, чем дата выхода из системы, и если она самая старая, JWT недопустима.

...