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);