universal-cookie
Universal cookies for JavaScript
Integrations
react-cookie
- Universal cookies for Reactuniversal-cookie-express
- Hook cookies get/set on Express for server-rendering
Getting started
npm install universal-cookie
or in the browser (global variable
UniversalCookie
):<script
crossorigin
src="https://unpkg.com/universal-cookie@7/umd/universalCookie.min.js"
></script>
API - Cookies class
constructor([cookieHeader], [defaultSetOptions])
Create a cookies context- cookieHeader (string|object): specify the cookie header or object
- defaultSetOptions (object): specify the default options when setting cookies
/
as the path if you want your cookie to be accessible on all pages
- expires (Date): absolute expiration date for the cookie
- maxAge (number): relative max age of the cookie from when the client receives it in seconds
- domain (string): domain for the cookie (sub.domain.com or .allsubdomains.com)
- secure (boolean): Is only accessible through HTTPS?
- httpOnly (boolean): Is only the server can access the cookie? Note: You cannot get or set httpOnly cookies from the browser, only the server.
- sameSite (boolean|none|lax|strict): Strict or Lax enforcement
- partitioned (boolean): Indicates that the cookie should be stored using partitioned storageget(name, [options])
Get a cookie value- name (string): cookie name
- options (object):
getAll([options])
Get all cookies- options (object):
set(name, value, [options])
Set a cookie value- name (string): cookie name
- value (string|object): save the value and stringify the object if needed
- options (object): Support all the cookie options from RFC 6265
/
as the path if you want your cookie to be accessible on all pages
- expires (Date): absolute expiration date for the cookie
- maxAge (number): relative max age of the cookie from when the client receives it in seconds
- domain (string): domain for the cookie (sub.domain.com or .allsubdomains.com)
- secure (boolean): Is only accessible through HTTPS?
- httpOnly (boolean): Is only the server can access the cookie? Note: You cannot get or set httpOnly cookies from the browser, only the server.
- sameSite (boolean|none|lax|strict): Strict or Lax enforcement
- partitioned (boolean): Indicates that the cookie should be stored using partitioned storageremove(name, [options])
Remove a cookie- name (string): cookie name
- options (object): Support all the cookie options from RFC 6265
/
as the path if you want your cookie to be accessible on all pages
- expires (Date): absolute expiration date for the cookie
- maxAge (number): relative max age of the cookie from when the client receives it in seconds
- domain (string): domain for the cookie (sub.domain.com or .allsubdomains.com)
- secure (boolean): Is only accessible through HTTPS?
- httpOnly (boolean): Is only the server can access the cookie? Note: You cannot get or set httpOnly cookies from the browser, only the server.
- sameSite (boolean|none|lax|strict): Strict or Lax enforcement
- partitioned (boolean): Indicates that the cookie should be stored using partitioned storageaddChangeListener(callback)
Add a listener to when a cookie is set or removed.- callback (function): Call that will be called with the first argument containing
name
,value
andoptions
of the changed cookie.
removeChangeListener(callback)
Remove a listener from the change callback.update()
Read back the cookies from the browser and triggers the change listeners. This should normally not be necessary because this library detects cookie changes automatically.Browser Example
import Cookies from 'universal-cookie';
const cookies = new Cookies(null, { path: '/' });
cookies.set('myCat', 'Pacman');
console.log(cookies.get('myCat')); // Pacman
Server Example
import Cookies from 'universal-cookie';
const cookies = new Cookies(req.headers.cookie, { path: '/' });
console.log(cookies.get('myCat')); // Pacman or undefined if not set yet