Skip to content

Commit

Permalink
Merge pull request #2 from CodingZeal/chores/documentation
Browse files Browse the repository at this point in the history
Add installation and usage documentation to the README
  • Loading branch information
randycoulman committed Jul 13, 2017
2 parents 4031b2d + 35c4cec commit 536a4cc
Showing 1 changed file with 53 additions and 13 deletions.
66 changes: 53 additions & 13 deletions README.md
Expand Up @@ -4,23 +4,63 @@
[![CircleCI](https://circleci.com/gh/CodingZeal/redux-persist-sensitive-storage.svg?style=shield)](https://circleci.com/gh/CodingZeal/redux-persist-sensitive-storage)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)

redux-persist storage engine for react-native-sensitive-info
Storage engine to use [react-native-sensitive-info](https://github.com/mCodex/react-native-sensitive-info) with [redux-persist](https://github.com/rt2zz/redux-persist).

More details coming soon!
react-native-sensitive-info manages all data stored in Android Shared Preferences and iOS Keychain.

### TODO:
**NOTE:** Android Shared Preferences are not secure, but there is [a branch of react-native-sensitive-info](https://github.com/mCodex/react-native-sensitive-info/tree/keystore) that uses the Android keystore instead of shared preferences. You can use that branch with redux-persist-sensitive-storage if you prefer.

- [ ] Write documentation
- [ ] How to install (react-native-sensitive-info needs to be installed and `react-native link`-ed)
- [ ] Example of how to use it
- [ ] Describe what options are (same ones accepted by react-native-sensitive-info)
- [ ] Mention that storage is not (yet) secure on Android, but point at branch on r-n-s-i that adds that.
- [ ] Contributing
## Installation

- [x] Add tests
You can install this package using either `yarn` or `npm`. You will also need to install and link [react-native-sensitive-info](https://github.com/mCodex/react-native-sensitive-info).

- [ ] Test on both iOS and Android
Using Yarn:
```
yarn add redux-persist-sensitive-storage react-native-sensitive-info
react-native link react-native-sensitive-info
```

- [ ] Submit PR to add a link to this lib from redux-persist
Using npm:
```
npm install --save redux-persist-sensitive-storage react-native-sensitive-info
react-native link react-native-sensitive-info
```

- [ ] Submit PR to add a link to this lib from react-native-sensitive-info
## Usage

To use redux-persist-sensitive-storage, configure redux-persist according to [its documentation](https://github.com/rt2zz/redux-persist#redux-persist).

Modify the `persistStore` call as follows:

```js
import createSensitiveStorage from "redux-persist-sensitive-storage";

// ...

persistStore(store, { storage: createSensitiveStorage(options) });
```

`options` is optional and are used to configure the keychain service (iOS) and shared preferences name (Android) that react-native-sensitive-info uses. See [the documentation](https://github.com/mCodex/react-native-sensitive-info#methods) for more information.

Here's a full example:

```js
import { compose, applyMiddleware, createStore } from "redux";
import { persistStore, autoRehydrate } from "redux-persist";
import createSensitiveStorage from "redux-persist-sensitive-storage";

const store = createStore(
reducer,
compose(
applyMiddleware(...),
autoRehydrate()
)
);

persistStore(store, {
storage: createSensitiveStorage({
keychainService: "myKeychain",
sharedPreferencesName: "mySharedPrefs"
});
);
```

0 comments on commit 536a4cc

Please sign in to comment.