セッションを削除するためにサーバーに 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 の問題であることがわかりました。ルートに res.clearCookie を追加しました。残念ながら、動作 (Cookie、セッション キープ アライブ) は変わりませんでした
EDIT2 : res.clearCookieにいくつかのパラメーターを指定しました => res.clearCookie('connect.sid', { path: '/' }); これで、少なくとも cookie はブラウザから削除されました。しかし、セッションはまだ利用できるようです。または、少なくとも req.session が false であっても、必要な頻度でログアウトルートを呼び出すことができます
EDIT3: redis からすべてのセッションを削除し、すべて (redis、ノード、ブラウザー) を再起動しました。再度ログインしてログアウトしました。これは今のところ機能しますが、F5 でページを再読み込みすると、新しいセッションが開始されます。なぜ?