Expressjs не уничтожает сеанс

У меня есть представление 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, я получаю новый сеанс. ЗАЧЕМ?

6
задан bodokaiser 20 July 2012 в 09:24
поделиться