Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/morcmarc/react-native-cognito
AWS Cognito integration module for React Native
https://github.com/morcmarc/react-native-cognito
Last synced: about 2 months ago
JSON representation
AWS Cognito integration module for React Native
- Host: GitHub
- URL: https://github.com/morcmarc/react-native-cognito
- Owner: morcmarc
- License: mit
- Archived: true
- Created: 2015-11-21T15:37:13.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-07-01T12:30:09.000Z (over 7 years ago)
- Last Synced: 2024-11-20T17:16:42.345Z (2 months ago)
- Language: Java
- Size: 41 KB
- Stars: 63
- Watchers: 4
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-react-native - react-native-cognito ★63 - AWS Cognito-based authentication module for React Native. (Components / Backend)
- awesome-react-native - react-native-cognito ★63 - AWS Cognito-based authentication module for React Native. (Components / Backend)
- awesome-react-native - react-native-cognito ★63 - AWS Cognito-based authentication module for React Native. (Components / Backend)
- awesome-react-native-ui - react-native-cognito ★48 - AWS Cognito-based authentication module for React Native. (Components / Backend)
- awesome-react-native - react-native-cognito ★63 - AWS Cognito-based authentication module for React Native. (Components / Backend)
README
# React Native : AWS Cognito Module
**Deprecated! This library is not actively developed. Check out [react-native-aws-cognito-js](http://github.com/AirLabsTeam/react-native-aws-cognito-js) instead.**
`react-native-cognito` provides a [React Native](http://facebook.github.io/react-native/) module for integrating with [AWS Cognito](https://aws.amazon.com/cognito/).
**Features currently supported:**
* [x] dataset:synchronize
**Roadmap:**
* [ ] dataset:subscribe
* [ ] dataset:unsubscrib
* [ ] proper callbacks + events
* [ ] promises
* [ ] twitter auth support
* [ ] google auth support
* [ ] custom login support## Supported Identity Providers
Currently the following identity providers are supported:
In development:
## Requirements
`react-native-cognito` does not handle authentication with identity providers such as Facebook. You have to use [react-native-facebook-login](https://github.com/magus/react-native-facebook-login) or similar to get a valid access token to use with `react-native-cognito`.
### AWS Mobile SDK
Make sure you install the AWS Mobile SDK. [https://aws.amazon.com/mobile/sdk/](http://docs.aws.amazon.com/mobile/sdkforios/developerguide/setup.html).
## Example Usage
```es6
import React from 'react-native';
import Cognito from 'react-native-cognito';
import LoginStore from '../stores/LoginStore';let region = 'eu-west-1';
let identityPoolId = 'your_cognito_identity_pool_id';class Demo extends React.Component {
constructor() {
// Load login credentials from flux store.
this.state = LoginStore.getState();// Provide credentials to Cognito.
Cognito.initCredentialsProvider(
identityPoolId,
this.state.credentials.token, // <- Facebook access token
region);// Sync data
Cognito.syncData('testDataset', 'hello', 'world', (err) => {
// callback
// handle errors etc
});
}
}
```## Install -- iOS
First, install via npm:
```
$ npm install --save react-native-cognito
```Add RCTCognito.xcodeproj to Libraries and add libRCTCognito.a to Link Binary With Libraries under Build Phases. More info and screenshots about how to do this is available in the [React Native documentation](https://facebook.github.io/react-native/docs/linking-libraries-ios.html#content).
**Next, select RCTCognito.xcodeproj and add your AWS SDK path to Framework Search Paths under Build Settings.**
## Install -- Android
*Disclaimer: experimental i.e., don't use*
### Step 1 - Gradle Settings
Edit `android/settings.gradle` and add the following lines:
```
...
include ':react-native-cognito'
project(':react-native-cognito').projectDir = new File(rootProject.projectDir, '../node-modules/react-native-cognito/android')
```### Step 2 - Gradle Build
Edit `android/app/build.gradle`:
```
...
dependencies {
...
compile project(':react-native-cognito')
}
```### Step 3 - Register Package
Edit `android/app/src/main/java/com/myApp/MainActivity.java`.
```java
// Import package
import com.morcmarc.rctcognito.ReactCognitoPackage;...
public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler {
...// declare package
private ReactCognitoPackage mReactCognitoPackage;...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mReactRootView = new ReactRootView(this);
...
// Instantiate package
mReactCognitoPackage = new ReactCognitoPackage(this);
...
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle")
.setJSMainModuleName("index.android")// Register the package
.addPackage(mReactCognitoPackage).setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
...
}
}
```### Step 4 - Permissions
You might have to add the following permission to your `AndroidManifest.xml`:
```xml
```
## Contributors
- [Sunny Gurnani](https://github.com/SunnyGurnani)
## License
This software is licensed under the MIT License.
React and React Native are BSD licensed. Facebook also provide an additional patent grant.