redux-cookies
November 30, 2016 ยท View on GitHub
Redux cookies-middleware and cookies-actions for Isomorphic(Universal) cookies
#Server-side
import {createStore, applyMiddleware} from 'redux';
import Cookies from 'cookies';
import {getCookiesMiddleware} from 'redux-cookies';
import {createServer} from 'http';
import reducer from './reducer';
createServer(function(req, res) {
const cookies = new Cookies(req, res);
const store = createStore(
reducer,
applyMiddleware(getCookiesMiddleware(cookies))
);
//...
}).listen(3000);
#Client-side
import Cookies from 'cookies-js';
import {getCookiesMiddleware} from 'redux-cookies';
import reducer from './reducer';
const store = createStore(
reducer,
applyMiddleware(getCookiesMiddleware(Cookies))
);
#Actions
import {cookiesGet} from 'redux-cookies';
export function alertSomething() {
return dispatch => {
const something = dispatch(cookiesGet('something'));
window.alert(something);
};
}
#Usage
redux-cookies exposes cookiesSet, cookiesSet and cookiesExpire
cookiesSet takes a "cookie name", "cookie value" and an optional "options" // options like "expires"
cookiesGet takes a "cookie name"
cookiesExpire takes a "cookie name" and an "option"
import { cookiesSet, cookiesGet, cookiesExpire } from 'redux-cookie';
dispatch(cookiesSet('AUTH_TOKEN', '1234abc...', { expires: 3600 })) // Expire in one hour
const token = dispatch(cookiesGet('AUTH_TOKEN')) // return the cookie value
dispatch(cookiesExpire('AUTH_TOKEN')) // expire cookie now
dispatch(cookiesExpire('AUTH_TOKEN', { expires: 3600 })) // Expire in one hour