Load and save cookies with React
Install
$ npm install react-cookies --save
Usage
{ super thisonLogin = thisonLogin thisonLogout = thisonLogout } { thisstate = userId: cookie } { this cookie } { cookie } { const userId = thisstate if !userId return <LoginPanel onSuccess=thisonLogin /> return <Dashboard userId=userId /> }
React cookies is the v1.0.4 of react-cookie with a couple changes.
Isomorphic cookies!
To be able to access user cookies while doing server-rendering, you can use plugToRequest
or setRawCookie
.
API
.load(name, [doNotParse])
Load the cookie value.
Returns undefined
if the cookie does not exist.
Deserialize any cookie starting with {
or [
unless dotNotParse
is true
.
name
Type: string
Required
doNotParse
Type: boolean
Default: false
Example
{ thisstate = token: cookie // => 123456789}
.loadAll()
Load all available cookies.
Returns an object
containing all cookies.
Example
{ thisstate = cookies: cookie // => { cookies: { token: 123456789, _ga: GA198712 } }}
.select([regex])
Find all the cookies with a name that match the regex.
Returns an object
with the cookie name as the key.
Example
{ thisstate = tests: cookie // => { tests: { test: 'test', 'testing': 'testing' } }}
.save(name, value, [options])
Set a cookie.
name
Type: string
Required
value
Type: string
||number
||object
Required
options
Support all the cookie options from the RFC 6265.
Type: object
path
Cookie path.
Use /
as the path if you want your cookie to be accessible on all pages.
Type: string
expires
Absolute expiration date for the cookie.
Type: object (date)
maxAge
Relative max age of the cookie from when the client receives it in seconds
.
Type: number
domain
Domain for the cookie.
Use https://*.yourdomain.com
if you want to access the cookie in all your subdomains.
Type: string
secure
If set true
it will only be accessible through https.
Type: boolean
httpOnly
If set true
it will only be accessible on the server.
Type: boolean
Example
{ const expires = expires cookie}
.remove(name, [options])
Remove a cookie.
name
Type: string
Required
options
Support all the cookie options from the RFC 6265.
Type: object
path
Cookie path.
Use /
as the path if you want your cookie to be accessible on all pages.
Type: string
expires
Absolute expiration date for the cookie.
Type: object (date)
maxAge
Relative max age of the cookie from when the client receives it in seconds
.
Type: number
domain
Domain for the cookie.
Use https://*.yourdomain.com
if you want to access the cookie in all your subdomains.
Type: string
secure
If set true
it will only be accessible through https.
Type: boolean
httpOnly
If set true
it will only be accessible on the server.
Type: boolean
Example
{ cookie}
.plugToRequest(req, res): unplug()
Load the user cookies so you can do server-rendering and match the same result.
Also send back to the user the new cookies.
Work with connect or express.js by using the cookieParser middleware first.
Use const unplug = plugToRequest(req, res)
just before your renderToString
.
Returns unplug()
function so it stops setting cookies on the response.
.setRawCookie(cookies)
Load the user cookies so you can do server-rendering and match the same result.
Use setRawCookie(headers.cookie)
just before your renderToString
.
Make sure it is the raw string from the request headers.
License
MIT © Bu Kinoshita