Когда заканчивается сессия javaScript? Удалить куки в конце сессии
Я хотел бы удалить cookie с именем "username", как только пользователь закроет свою вкладку / браузер. Я использую следующий код, чтобы определить, закрывается ли пользователь и должен ли быть удален файл cookie. Но печенье все еще там. Зачем?
В ресурсах консоли браузера поле истечения срока действия cookie отображается как "сессия". Когда заканчивается сессия?
// delete cookies when user closes browser/tab
$(window).unload(function() {
$.removeCookie('username', { path: '/' });
});
1 ответ
Чтобы создать cookie JS это:
$.cookie('username', 'your value');
Чтобы удалить тот же файл cookie, используйте следующий код:
$.removeCookie('username', '', { path: '/'});
Вы пропустили второй параметр, значение, поэтому в этом случае срок действия файла cookie истечет в конце сеанса.
Библиотека, которую я использовал:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
Эта библиотека больше не поддерживается. С новым плагином:
<script src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/2.1.0/js.cookie.min.js"></script>
Чтобы создать печенье:
Cookies.set('username', 'value');
и удалить:
Cookies.remove('username');
По умолчанию, если дата истечения срока не указана, Cookie удаляется, когда пользователь закрывает браузер (сеансовый cookie).
Поскольку браузер можно закрыть с помощью alf+f4 или с помощью X или с сигналом уничтожения, вы можете обрабатывать только время истечения срока действия cookie и полагаться на него.