https://github.com/bernabe9/redux-react-native-session
Keep your session sync with the Async Storage and Redux
https://github.com/bernabe9/redux-react-native-session
Last synced: 3 months ago
JSON representation
Keep your session sync with the Async Storage and Redux
- Host: GitHub
- URL: https://github.com/bernabe9/redux-react-native-session
- Owner: bernabe9
- Created: 2017-06-23T19:19:31.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2024-08-27T20:44:02.000Z (almost 2 years ago)
- Last Synced: 2025-10-07T23:23:00.765Z (8 months ago)
- Language: JavaScript
- Homepage:
- Size: 24.4 KB
- Stars: 9
- Watchers: 0
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Redux React Native Session
[](https://npmjs.org/package/redux-react-native-session)
[](https://david-dm.org/bernabe9/redux-react-native-session)
Keep your session sync with AsyncStorage and Redux :key:
Redux React Native Session provides an simple API that allows to manage sessions through the app.
## Installation
* Install:
yarn:
`yarn add redux-react-native-session`
npm:
`npm install redux-react-native-session`
* Link:
`react-native link @react-native-community/async-storage`
## Usage
- Add the session reducer:
```javascript
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:
```javascript
import { createStore } from 'redux';
import { sessionService } from 'redux-react-native-session';
const store = createStore(reducer)
sessionService.initSessionService(store);
```
## API
### initSessionService(store)
Initialize an instance of the session service.
### refreshFromAsyncStorage
Force to refresh the Redux store from the AsyncStorage.
Note: this function is called once the session service is initialized
### saveSession(session:object) : Promise
Saves the session object in the AsyncStorage and changes the `authenticated` flag to `true` in Redux store
### loadSession : Promise(currentSession:Object)
Returns the current session if exists
Example:
```javascript
loadSession
.then(currentSession => console.log(currentSession))
.catch(err => console.log(err))
```
### deleteSession : Promise
Deletes the current session from the AsyncStorage
### saveUser(user:object) : Promise
Saves the user object in the AsyncStorage and in the Redux store
### loadUser : Promise
Returns the current user if exists
### deleteUser : Promise
Deletes the current user from the AsyncStorage and the Redux store
## Immutable JS
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:
```javascript
import { combineReducers } from 'redux';
import { sessionImmutableReducer as session } from 'redux-react-native-session';
const reducers = {
// ... your other reducers here ...
session
};
const reducer = combineReducers(reducers);
```