包详细信息

cookie-universal

microcipcip347.5kMIT2.2.2

Universal cookie plugin, perfect for SSR

universal cookie, SSR cookie, node cookie, browser cookie

自述文件

cookie-universal

npm (scoped with tag) npm js-standard-style

Universal cookie plugin, perfect for SSR

You can use cookie-universal to set, get and remove cookies in the browser, node, connect and express apps. cookie-universal parse cookies with the popular cookie node module.

Install

  • yarn: yarn add cookie-universal
  • npm: npm i --save cookie-universal

Usage

// server
app.get('/', (req, res) => {
  const cookies = require('cookie-universal')(req, res)
  cookies.set('cookie-name', 'cookie-value')
})

// browser, from import
import Cookie from 'cookie-universal'
const cookies = Cookie()
cookies.set('cookie-name', 'cookie-value')

// browser, from dist
// note: include dist/cookie-universal.js
const cookies = Cookie()
cookies.set('cookie-name', 'cookie-value')

ParseJSON

By default cookie-universal will try to parse to JSON, however you can disable this functionality in several ways:


<summary>Disable globally</summary>

js // server const parseJSON = false app.get('/', (req, res) => { const cookies = require('cookie-universal')(req, res, parseJSON) }) // browser, from import import Cookie from 'cookie-universal' const parseJSON = false const cookies = Cookie(false, false, parseJSON)


<summary>Disable globally on the fly</summary>

js // server app.get('/', (req, res) => { const cookies = require('cookie-universal')(req, res) cookies.parseJSON = false }) // browser, from import import Cookie from 'cookie-universal' const cookies = Cookie(false, false) cookies.parseJSON = false


<summary>Disable on a specific get request</summary>

js // server app.get('/', (req, res) => { const cookies = require('cookie-universal')(req, res) cookies.set('cookie-name', 'cookie-value') cookies.get('cookie-name', { parseJSON: false }) }) // browser, from import import Cookie from 'cookie-universal' const cookies = Cookie(false, false) cookies.set('cookie-name', 'cookie-value') cookies.get('cookie-name', { parseJSON: false })

Api

<summary>set(name, value, opts)</summary>

- name (string): Cookie name to set. - value (string|object): Cookie value. - opts (object): Same as the cookie node module. - path (string): Specifies the value for the Path Set-Cookie attribute. By default, the path is considered the "default path". - expires (date): Specifies the Date object to be the value for the Expires Set-Cookie attribute. - maxAge (number): Specifies the number (in seconds) to be the value for the Max-Age Set-Cookie attribute. - httpOnly (boolean): Specifies the boolean value for the [HttpOnly Set-Cookie attribute][rfc-6265-5.2.6]. - domain (string): specifies the value for the Domain Set-Cookie attribute. - encode (function): Specifies a function that will be used to encode a cookie's value. - sameSite (boolean|string): Specifies the value for the SameSite Set-Cookie attribute.
Possible values: true, false, 'lax', 'none', 'strict' (see details). Default is false. - secure (boolean): Specifies the boolean value for the Secure Set-Cookie attribute. js const cookieValObject = { param1: 'value1', param2: 'value2' } // server app.get('/', (req, res) => { const cookies = require('cookie-universal')(req, res) cookies.set('cookie-name', 'cookie-value', { path: '/', maxAge: 60 * 60 * 24 * 7 }) cookies.set('cookie-name', cookieValObject, { path: '/', maxAge: 60 * 60 * 24 * 7 }) }) // client import Cookie from 'cookie-universal' const cookies = Cookie() cookies.set('cookie-name', 'cookie-value', { path: '/', maxAge: 60 * 60 * 24 * 7 }) cookies.set('cookie-name', cookieValObject, { path: '/', maxAge: 60 * 60 * 24 * 7 })


<summary>setAll(cookieArray)</summary>

- cookieArray (array) - name (string): Cookie name to set. - value (string|object): Cookie value. - opts (object): Same as the cookie node module. - path (string): Specifies the value for the Path Set-Cookie attribute. By default, the path is considered the "default path". - expires (date): Specifies the Date object to be the value for the Expires Set-Cookie attribute. - maxAge (number): Specifies the number (in seconds) to be the value for the Max-Age Set-Cookie attribute. - httpOnly (boolean): Specifies the boolean value for the [HttpOnly Set-Cookie attribute][rfc-6265-5.2.6]. - domain (string): specifies the value for the Domain Set-Cookie attribute. - encode (function): Specifies a function that will be used to encode a cookie's value. - sameSite (boolean|string): Specifies the value for the SameSite Set-Cookie attribute.
Possible values: true, false, 'lax', 'none', 'strict' (see details). Default is false. - secure (boolean): Specifies the boolean value for the Secure Set-Cookie attribute. js const options = { path: '/', maxAge: 60 * 60 * 24 * 7 } const cookieList = [ { name: 'cookie-name1', value: 'value1', opts: options }, { name: 'cookie-name2', value: 'value2', opts: options }, { name: 'cookie-name3', value: 'value3', opts: options }, { name: 'cookie-name4', value: 'value4', opts: options } ] // server app.get('/', (req, res) => { const cookies = require('cookie-universal')(req, res) cookies.setAll(cookieList) }) // client import Cookie from 'cookie-universal' const cookies = Cookie() cookies.setAll(cookieList)


<summary>get(name, opts)</summary>

- name (string): Cookie name to get. - opts - fromRes (boolean): Get cookies from res instead of req. - parseJSON (boolean): Parse json, true by default unless overridden globally or locally. js // server app.get('/', (req, res) => { const cookies = require('cookie-universal')(req, res) const cookieRes = cookies.get('cookie-name') const cookieRes = cookies.get('cookie-name', { fromRes: true }) // get from res instead of req // returns the cookie value or undefined }) // client import Cookie from 'cookie-universal' const cookies = Cookie() const cookieRes = cookies.get('cookie-name') // returns the cookie value or undefined


<summary>getAll(opts)</summary>

- opts - fromRes (boolean): Get cookies from res instead of req. - parseJSON (boolean): Parse json, true by default unless overridden globally or locally. js // server app.get('/', (req, res) => { const cookies = require('cookie-universal')(req, res) const cookiesRes = cookies.getAll() const cookiesRes = cookies.getAll({ fromRes: true }) // get from res instead of req // returns all cookies or {} { "cookie-1": "value1", "cookie-2": "value2", } }) // client import Cookie from 'cookie-universal' const cookies = Cookie() const cookiesRes = cookies.getAll() // returns all cookies or {} { "cookie-1": "value1", "cookie-2": "value2", }


<summary>remove(name, opts)</summary>

- name (string): Cookie name to remove. - opts - path (string): Specifies the value for the Path Set-Cookie attribute. By default, the path is considered the "default path". - expires (date): Specifies the Date object to be the value for the Expires Set-Cookie attribute. - maxAge (number): Specifies the number (in seconds) to be the value for the Max-Age Set-Cookie attribute. - httpOnly (boolean): Specifies the boolean value for the [HttpOnly Set-Cookie attribute][rfc-6265-5.2.6]. - domain (string): specifies the value for the Domain Set-Cookie attribute. - encode (function): Specifies a function that will be used to encode a cookie's value. - sameSite (boolean|string): Specifies the value for the SameSite Set-Cookie attribute.
Possible values: true, false, 'lax', 'none', 'strict' (see details). Default is false. - secure (boolean): Specifies the boolean value for the Secure Set-Cookie attribute. js // server app.get('/', (req, res) => { const cookies = require('cookie-universal')(req, res) cookies.remove('cookie-name') cookies.remove('cookie-name', { // this will allow you to remove a cookie // from a different path path: '/my-path' }) }) // client import Cookie from 'cookie-universal' const cookies = Cookie() cookies.remove('cookie-name')


<summary>removeAll(opts)</summary>

- opts - path (string): Specifies the value for the Path Set-Cookie attribute. By default, the path is considered the "default path". - expires (date): Specifies the Date object to be the value for the Expires Set-Cookie attribute. - maxAge (number): Specifies the number (in seconds) to be the value for the Max-Age Set-Cookie attribute. - httpOnly (boolean): Specifies the boolean value for the [HttpOnly Set-Cookie attribute][rfc-6265-5.2.6]. - domain (string): specifies the value for the Domain Set-Cookie attribute. - encode (function): Specifies a function that will be used to encode a cookie's value. - sameSite (boolean|string): Specifies the value for the SameSite Set-Cookie attribute.
Possible values: true, false, 'lax', 'none', 'strict' (see details). Default is false. - secure (boolean): Specifies the boolean value for the Secure Set-Cookie attribute. js // server app.get('/', (req, res) => { const cookies = require('cookie-universal')(req, res) cookies.removeAll() }) // client import Cookie from 'cookie-universal' const cookies = Cookie() cookies.removeAll()


<summary>nodeCookie</summary>

This property will expose the cookie node module so you don't have to include it yourself. js // server app.get('/', (req, res) => { const cookies = require('cookie-universal')(req, res) const cookieRes = cookies.nodeCookie.parse('cookie-name', 'cookie-value') cookieRes['cookie-name'] // returns 'cookie-value' }) // client import Cookie from 'cookie-universal' const cookies = Cookie() const cookieRes = cookies.nodeCookie.parse('cookie-name', 'cookie-value') cookieRes['cookie-name'] // returns 'cookie-value'

License

MIT License

Copyright (c) Salvatore Tedde microcipcip@gmail.com