Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm's 300,000 packages pre-installed, including redux-cookie with all npm packages installed. Try it out:

var reduxCookie = require("redux-cookie")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

redux-cookie v0.5.9

Redux cookie middleware for both client and server ( universal )

redux-cookie

Redux cookie middleware for both client and server ( universal )

Build Status

linux build

Note

Since version 0.5.6, this library has changed the action signature from cookieSet, cookieGet and cookieExpire to setCookie, getCookie and expireCookie

But all the functionality is the same as before.

Prerequiste

Assuming you are using a cookie library, like js-cookie or your own cookie library implementation. Make sure it has get and set in your cookie library implementation.

Server Side

import {createStore, applyMiddleware} from 'redux';
import Cookies from 'cookies';
import { createCookieMiddleware } from 'redux-cookie';
import {createServer} from 'http';
import reducer from './reducer';

createServer(function(req, res) {
    const cookies = new Cookies(req, res);
    const store = createStore(
      reducer,
      applyMiddleware(createCookieMiddleware(cookies))
    );
    //...
}).listen(3000);

Client Side

import Cookies from 'js-cookie';
import { createCookieMiddleware } from 'redux-cookie';
import reducer from './reducer';
const store = createStore(
  reducer,
  applyMiddleware(createCookieMiddleware(Cookies))
);

Usage

redux-cookie exposes cookieGet, cookieSet and cookieExpire

cookieGet takes a "cookie name" cookieExpire takes a "cookie name" cookieSet takes a "cookie name", "cookie value" and an optional "options" // options like "expires" or options support by your cookie library

import { getCookie, setCookie, expireCookie } from 'redux-cookie';

// !! important >> Remember those are actions, the following just show you what it does
// Please look at the test file to see examples on how to dispatch the action

setCookie('cool', 'very cool', { expires: 365 }) // please check your cookie library for what is supported

getCookie('cool')

expireCookie('cool')  // expire cookie now

Note: redux-cookie also expose an action removeCookie if your library has remove implementation, if not, it will fall back to expireCookie.

removeCookie takes a "cookie name" and an optional "options"

import { setCookie, removeCookie } from 'redux-cookie';

// !! important >> Remember those are actions, the following just show you what it does
// If you have question about the usage, please take a look at the test file

// Delete a cookie valid to the path of the current page
setCookie('cool', 'very cool', { path: '' })   // if you option has path

// it won't work - fail
removeCookie('cool')  // it won't work :(

// it will work - removed
removeCookie('cool', { path: '' }) 

Configuration

If you want to prefix your action name

import Cookies from 'cookies-js';
import { createCookieMiddleware } from 'redux-cookie';
import reducer from './reducer';
const store = createStore(
  reducer,
  applyMiddleware(createCookieMiddleware(Cookies, '/redux/cookie/'))
);
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free