Простой, легковесный JavaScript API для работы с браузерными куками, который легко освоить и использовать, имеет разумный размер (~2кБ) (gzip: 0.84кБ) и не зависит от других библиотек. Он не должен мешать работе любых JavaScript библиотек или фреймворков.
Старая версия v1 документация предварительный просмотр.
Особенности:
🚀 Без зависимостей
🌱 Работает во всех браузерах
🍁 Поддерживает TypeScript, включая d.ts определение
🔥 Тщательно протестировано
📦 Поддерживает AMD/CommonJS
💥 cookie.min.js 2.01кБ (gzip: 0.84кБ)
Установлен через npm. Вам потребуется установленный Node.js на вашей системе.
$ npm install cookiejs --save
import cookie from 'cookiejs';
cookie('test', 'tank', 1);
Или скачайте вручную и подключите cookiejs
в вашем HTML, его также можно скачать через UNPKG или jsDelivr CDN:```html
## Основное использование
> cookie(key, value, num)
> `key` имя куки
> `value` значение куки
> `num` время истечения
```js
cookie('test', 'tank', 1) // Создает куку, которая будет действовать 1 день со дня установки
cookie('test') // Создает куку, действующую на всем сайте
cookie('test', null) // Удаляет куку `test`
cookie() // Получает все куки
cookie.set('test', 'танк', 1) // ====cookie('test', 'танк', 1)
cookie.get('test') // ====cookie('test')
cookie.remove('test') // ====cookie('test', null)
cookie.remove('test3', 'test4') // Удаление кук `test3` и `test4`
cookie.clear() // Очистка всех кук
cookie.all() // Получение всех кук
cookie.set(имя, значение, опции)
Это то же самое что cookie(имя, значение, опции)
Установка значения куки в несколько этапов
cookie.set({
имя1: 'значение1',
имя2: 'значение2'
});
Создание куки с истечением через 30 дней от текущего времени
cookie('test', 'танк', 30); // Создание куки, которая будет действовать 30 дней
cookie({ 'test':'123', 'test2':'456' }, { // Батч установки
'expires': 30,
'path': '/',
'domain':''
});
Создание куки с истечением через 30 дней от текущего времени, и установка атрибутов куки
cookie('test', '123', { 'expires': 30, 'path': '/', 'domain':'' });
Каждый вызов cookie.set(...)
может принимать простой объект в последнем аргументе для установки атрибутов. Атрибуты каждого вызова переопределяют дефолтные атрибуты.Примеры:
cookie('name', 'value', { 'expires': 30, 'path': '/', 'domain': '' });
cookie.get('name');
cookie.remove('name');
Определяет время удаления куки. Значение может быть числом, которое будет интерпретировано как количество дней с момента создания, либо экземпляром типа Date
. Если этот атрибут пропущен, кука становится сессионной.
cookie('name', 'value', { 'expires': 30 });
По умолчанию:
/
Строка, указывающая путь, где кука видна.
cookie.set('name', 'value', { path: '/' });
cookie.get('name'); // => 'value'
По умолчанию: Кука видна только домену или поддомену страницы, где она была создана, за исключением Internet Explorer (см.: Примечание относительно поведения по умолчанию Internet Explorer).
⚠️Если вы пропустите атрибут domain, он будет виден для поддомена в IE.
Строка, указывающая допустимый домен, где кука должна быть видна. Кука также будет видна для всех поддоменов.
Примеры:
cookie.set('name', 'value', { domain: 'subdomain.page.com' });
cookie.get('name'); // => undefined (необходимо прочитать на 'subdomain.page.com')
По умолчанию: отсутствие требования к использованию безопасного протокола.
Значение может быть истинным или ложным, указывая на то, требуется ли передача cookie с использованием безопасного протокола (https).Пример использования:
cookie.set('name', 'значение', { secure: true });
cookie.get('name'); // => 'значение'
cookie.remove('name');
Атрибут SameSite позволяет серверам указывать, когда и при каких условиях cookie будут отправлены вместе с запросами между сайтами (где Site определяется регистрируемым доменом и схемой: http или https). Это предоставляет некоторую защиту против атак типа "cross-site request forgery" (CSRF). Атрибут принимает три возможных значения: Strict, Lax и None.
С параметром Strict cookie отправляются только сайту, где они были созданы. При значении Lax cookie отправляются, если пользователь переходит на сайт, где они были созданы, например, переход по ссылке с внешнего сайта. При значении None cookie отправляются в обоих случаях — при запросах с сайта, где они были созданы, и при запросах между сайтами, но только в безопасных контекстах (то есть, если SameSite=None
, то также должно быть установлено значение атрибута Secure
). Если атрибут SameSite
не указан, cookie рассматриваются как Lax.
Пример использования:
cookie.set('name', 'значение', { sameSite: 'Strict' });
```> Примечание: Стандарт, связанный с `SameSite`, недавно был изменён (MDN документирует новое поведение выше). Узнайте больше о том, как этот атрибут обрабатывается в различных версиях браузеров, в таблице [совместимости браузеров](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite#browser_compatibility):
>
> `SameSite=Lax` теперь является значением по умолчанию, если `SameSite` не указан. Ранее cookie отправлялись для всех запросов по умолчанию.
> - Cookie с `SameSite=None` должны теперь также иметь установленное значение атрибута `Secure` (они требуют безопасного контекста).
> - Cookie от одного домена больше не считаются cookie того же сайта, если они отправляются с помощью другой схемы (`http:` или `https:`).## Связанные
- [storejs](https://github.com/jaywcjlove/store.js) Простая, лёгковесная JavaScript API для работы с localStorage браузера, которая легко осваивается и используется, имеет приемлемый размер (2.36kb, gzip: 1.04kb) и не зависит ни от чего другого. ## Участники
Как всегда, большое спасибо нашим замечательным участникам!
<a href="https://github.com/jaywcjlove/cookie.js/graphs/contributors">
<img src="https://jaywcjlove.github.io/cookie.js/CONTRIBUTORS.svg" />
</a>
Сделано с помощью [action-contributors](https://github.com/jaywcjlove/github-action-contributors).
## Лицензия
Разрешено на условиях лицензии MIT.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )