Redux React Immutable Session
An immutablejs wrapper around Redux React Session
Keep your session sync with localStorage and Redux 🔑
Redux React Session provides an API that allows to manage sessions through the app, with authorization function for react-router and a persisted session.
Installation
npm install redux-react-session-immutable --save
Usage
- Add the session reducer:
;; const reducers = // ... your other reducers here ... session: sessionReducer;const reducer = ;
- Initiate the session service:
;; const store = sessionService;
Example
The example simulates a simple login/logut that sends requests to a server.
Run the example
- get into the folder:
cd example
- install dependencies:
npm install
- run the example:
npm start
API
initSessionService(store, refreshOnCheckAuth:Boolean, redirectPath:String)
Initialize a singleton instance of the session service.
Options:
- store: Mandatory option, is used to keep sync the localStorage with Redux store
- refreshOnCheckAuth(default: false): Refresh Redux store in the
checkAuth
function - redirectPath(default:
"login"
): Path used when a session is rejected or doesn't exist
refreshFromLocalStorage
Force to refresh the Redux Store from the localStorage.
Note: this function is called once the session service is initialized
checkAuth
Authorization function for react-router to restrict routes, it checks if exist a session and redirects to the redirectPath
Example:
;;;;;; <Route path="/" component=App> <IndexRoute onEnter=sessionServicecheckAuth component=HomePage /> <Route path="login" component=LoginPage /> </Route>;
saveSession(session:object) : Promise
Saves the session object in the localStorage and changes the authenticated
flag to true
in Redux Store
loadSession : Promise(currentSession:Object)
Returns the current session if exists
Example:
loadSession
deleteSession : Promise
Deletes the current session
saveUser(user:object) : Promise
Saves the user object in the localStorage and in the Redux Store
loadUser : Promise
Returns the current user if exists
deleteUser : Promise
Deletes the current user