Когда заканчивается сессия 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 и полагаться на него.

Другие вопросы по тегам