Keep your session sync with AsyncStorage and Redux 🔑
Redux React Native Session provides an simple API that allows to manage sessions through the app.
- Install:
yarn:
yarn add redux-react-native-session
npm:
npm install redux-react-native-session
- Link:
react-native link @react-native-community/async-storage
- Add the session reducer:
import { combineReducers } from 'redux';
import { sessionReducer } from 'redux-react-native-session';
const reducers = {
// ... your other reducers here ...
session: sessionReducer
};
const reducer = combineReducers(reducers);
- Initiate the session service:
import { createStore } from 'redux';
import { sessionService } from 'redux-react-native-session';
const store = createStore(reducer)
sessionService.initSessionService(store);
Initialize an instance of the session service.
Force to refresh the Redux store from the AsyncStorage.
Note: this function is called once the session service is initialized
Saves the session object in the AsyncStorage and changes the authenticated
flag to true
in Redux store
Returns the current session if exists
Example:
loadSession
.then(currentSession => console.log(currentSession))
.catch(err => console.log(err))
Deletes the current session from the AsyncStorage
Saves the user object in the AsyncStorage and in the Redux store
Returns the current user if exists
Deletes the current user from the AsyncStorage and the Redux store
Usage of redux-react-native-session
with an immutable store is really simple.
Instead of the sessionReducer
import the sessionImmutableReducer
, as the following example:
- Add the session reducer:
import { combineReducers } from 'redux';
import { sessionImmutableReducer as session } from 'redux-react-native-session';
const reducers = {
// ... your other reducers here ...
session
};
const reducer = combineReducers(reducers);