react-native-keychain/README.md

83 lines
1.9 KiB
Markdown

# react-native-keychain
Keychain Access for React Native
Currently functionality is limited to just storing internet and generic passwords.
## Installation
`$ npm install react-native-keychain`
### Option: Manually
* Right click on Libraries, select **Add files to "…"** and select `node_modules/react-native-keychain/RNKeychain.xcodeproj`
* Select your project and under **Build Phases** -> **Link Binary With Libraries**, press the + and select `libRNKeychain.a`.
### Option: With [CocoaPods](https://cocoapods.org/)
Add the following to your `Podfile` and run `pod update`:
```
pod 'RNKeychain', :path => 'node_modules/react-native-keychain'
```
## Usage
See `KeychainExample` for fully working project example.
```js
var Keychain = require('react-native-keychain');
var username = 'zuck';
var password = 'poniesRgr8';
// Generic Password, service argument optional
Keychain
.setGenericPassword(username, password)
.then(function() {
console.log('Credentials saved successfully!');
});
Keychain
.getGenericPassword()
.then(function(credentials) {
console.log('Credentials successfully loaded for user ' + credentials.username);
});
Keychain
.resetGenericPassword()
.then(function() {
console.log('Credentials successfully deleted');
});
// Internet Password, server argument required
var server = 'http://facebook.com';
Keychain
.setInternetCredentials(server, username, password)
.then(function() {
console.log('Credentials saved successfully!');
});
Keychain
.getInternetCredentials(server)
.then(function(credentials) {
console.log('Credentials successfully loaded for user ' + credentials.username);
});
Keychain
.resetInternetCredentials(server)
.then(function() {
console.log('Credentials successfully deleted');
});
```
## Todo
- [x] iOS support
- [ ] Android support
- [ ] Storing objects as JSON
- [ ] Expose wider selection of underlying native APIs
## License
MIT © Joel Arvidsson 2015