У меня есть представление Backbone, которое отправляет вызов Ajax на сервер для удаления сеанса.
На сервере запускается следующее событие:
app.delete('/session', function(req, res) {
if (req.session) {
req.session.destroy(function() {
res.clearCookie('connect.sid', { path: '/' });
res.send('removed session', 200);
});
} else {
res.send('no session assigned', 500);
}
});
Странно то, что я могу нажимать кнопку выхода несколько раз, не получая код ошибки HTTP 500. Также хром показывает мне, что файл cookie все еще существует.
Что происходит не так?
С уважением
РЕДАКТИРОВАТЬ:
Я узнал, что это не проблема сеанса, а проблема с файлами cookie. Я добавил res.clearCookie в маршрут. К сожалению, поведение (cookie, сохранение сеанса )не изменилось
РЕДАКТИРОВАТЬ2: Теперь я дал res.clearCookie некоторые параметры => res.clearCookie ('connect.sid', { path :'/' } ); Теперь, по крайней мере, файл cookie исчез в браузере. Но сессия, кажется, все еще доступна. Или, по крайней мере, я могу вызвать маршрут выхода из системы, как часто я хочу, даже req.session должен быть ложным
РЕДАКТИРОВАТЬ3: Теперь я удалил все сеансы из Redis и перезапустил все (redis, node, browser ). Затем я снова вошел в систему и вышел из системы. Пока это работает, но когда я перезагружаю страницу с помощью F5, я получаю новый сеанс. ЗАЧЕМ?