redux-persist-sensitive-storage
v1.0.0
Published
redux-persist storage engine for react-native-sensitive-info
Downloads
33,001
Readme
redux-persist-sensitive-storage
Storage engine to use react-native-sensitive-info with redux-persist.
react-native-sensitive-info manages all data stored in Android Shared Preferences and iOS Keychain.
NOTE: Android Shared Preferences are not secure, but there is a branch of react-native-sensitive-info that uses the Android keystore instead of shared preferences. You can use that branch with redux-persist-sensitive-storage if you prefer.
Installation
You can install this package using either yarn
or npm
. You will also need to install and link react-native-sensitive-info.
Using Yarn:
yarn add redux-persist-sensitive-storage react-native-sensitive-info
react-native link react-native-sensitive-info
Using npm:
npm install --save redux-persist-sensitive-storage react-native-sensitive-info
react-native link react-native-sensitive-info
Usage
To use redux-persist-sensitive-storage, configure redux-persist according to its documentation.
Modify the persistStore
call as follows:
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 for more information.
Here's a full example:
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"
});
);