Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adamjmcgrath/react-native-simple-auth
OAuth login for React Native
https://github.com/adamjmcgrath/react-native-simple-auth
oauth react-native
Last synced: about 1 month ago
JSON representation
OAuth login for React Native
- Host: GitHub
- URL: https://github.com/adamjmcgrath/react-native-simple-auth
- Owner: adamjmcgrath
- License: mit
- Archived: true
- Created: 2015-05-11T22:11:32.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2021-08-04T05:36:46.000Z (over 3 years ago)
- Last Synced: 2024-04-26T04:36:43.792Z (9 months ago)
- Topics: oauth, react-native
- Language: JavaScript
- Homepage:
- Size: 12.5 MB
- Stars: 668
- Watchers: 24
- Forks: 105
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-react-native - react-native-simple-auth ★592 - Native social authentication for React Native on iOS (Components / Backend)
- awesome-react-native - react-native-simple-auth ★592 - Native social authentication for React Native on iOS (Components / Backend)
- awesome-react-native - react-native-simple-auth ★592 - Native social authentication for React Native on iOS (Components / Backend)
- awesome-react-native - react-native-simple-auth ★592 - Native social authentication for React Native on iOS (Components / Backend)
- awesome-react-native-ui - react-native-simple-auth ★289 - Native social authentication for React Native on iOS (Components / Backend)
README
# react-native-simple-auth [![Build Status](https://travis-ci.org/adamjmcgrath/react-native-simple-auth.svg?branch=chore%2Frelease-tasks)](https://travis-ci.org/adamjmcgrath/react-native-simple-auth)
## OAuth login for React Native
* [Screencast](#screencast)
* [Install](#install)
* [Providers Setup](#providers-setup)
* [Usage](#usage)
* [License](#license)Screencast
==========iOS | Android
:-------------------------:|:-------------------------:
![Screencast](https://raw.githubusercontent.com/adamjmcgrath/react-native-simple-auth/master/screencast-ios.gif) | ![Screencast](https://raw.githubusercontent.com/adamjmcgrath/react-native-simple-auth/master/screencast-android.gif)Source of example app: https://github.com/adamjmcgrath/ReactNativeSimpleAuthExample
Install
=======
- `yarn add react-native-simple-auth`
- Set up deep linking for your Android and iOS application using the instructions on the [react-native website](https://facebook.github.io/react-native/docs/linking.html) (set the `launchMode` of `MainActivity` to `singleTask` in `AndroidManifest.xml`, create the deep link schemes in [Providers Setup](#providers-setup))
- Set up your OAuth ProvidersProviders Setup
===============
- Go to the [developer console](https://console.cloud.google.com/apis/credentials/oauthclient/) and create credentials for an iOS application (you can also use these for your Android app). More [instructions](https://support.google.com/cloud/answer/6158849) on the Google support site.
- The "Bundle ID" should contain a dot, eg `com.reactnativesimpleauth`
- Your configuration object should contain the 'Client ID' as `appId` and 'Bundle ID' in the `callback` (note the single `/`, you can put anything as the path), eg
```js
{
appId: '123-123abc.apps.googleusercontent.com',
callback: 'com.reactnativesimpleauthexample:/oauth2redirect'
}
```
- Add the deep link scheme for the callback (Your Bundle ID, eg `com.reactnativesimpleauthexample`) to your `AndroidManifest.xml` eg https://github.com/adamjmcgrath/ReactNativeSimpleAuthExample/blob/master/android/app/src/main/AndroidManifest.xml#L28-L33
- Add the deep link scheme for the callback to your iOS app, eg https://dev.twitter.com/cards/mobile/url-schemes
- Create an app on the [Facebook developers](https://developers.facebook.com) website
- In `Settings`, click `Add Platform`
- Select iOS, and in the `Bundle ID` field, add `fb{your App ID}` eg `fb1234567890` (You can use the same configuration for Android)
- Your configuration object should contain the 'Appid ID' as `appId` and 'Bundle ID' in the `callback` (you must put `://authorize`), eg
```js
{
appId: '1234567890',
callback: 'fb1234567890://authorize',
scope: 'user_friends', // you can override the default scope here
fields: ['email', 'first_name', 'last_name'], // you can override the default fields here
}
```
- Add the deep link scheme for the callback (Your Bundle ID, eg `fb1234567890`) to your `AndroidManifest.xml` eg https://github.com/adamjmcgrath/ReactNativeSimpleAuthExample/blob/master/android/app/src/main/AndroidManifest.xml#L28-L33
- Add the deep link scheme for the callback to your iOS app, eg https://dev.twitter.com/cards/mobile/url-schemes (Due to A Facebook bug, this should always be the top one in the list)
- Create an app on https://apps.twitter.com
- You can put any valid URL as the callback url.
- Your configuration object should contain the 'Consumer Key (API Key)' as `appId`, the 'Consumer Secret' as `appSecret` and the Twitter `App name` in the `callback`, eg
```js
{
appId: 'abc1234567890',
appSecret: 'cba0987654321',
callback: 'testapp://authorize',
}
```
- Add the deep link scheme for the callback (Your App Name, eg `testapp`) to your `AndroidManifest.xml` eg https://github.com/adamjmcgrath/ReactNativeSimpleAuthExample/blob/master/android/app/src/main/AndroidManifest.xml#L28-L33
- Add the deep link scheme for the callback to your iOS app, eg https://dev.twitter.com/cards/mobile/url-schemes (Due to A Facebook bug, this should always be the top one in the list)### Tumblr
- Create an app on https://www.tumblr.com/oauth/apps
- You can put any valid URL as the callback url.
- Your configuration object should contain the 'OAuth Consumer Key' as `appId`, the 'OAuth Consumer Secret' as `appSecret` and any `callback`, eg
```js
{
appId: '1234567890abc',
appSecret: '1234567890abc',
callback: 'testapp://authorize',
}
```
- Add the deep link scheme for the callback (Your App Name, eg `testapp`) to your `AndroidManifest.xml` eg https://github.com/adamjmcgrath/ReactNativeSimpleAuthExample/blob/master/android/app/src/main/AndroidManifest.xml#L28-L33
- Add the deep link scheme for the callback to your iOS app, eg https://dev.twitter.com/cards/mobile/url-schemes (Due to A Facebook bug, this should always be the top one in the list)### Untappd
- Create an app on https://untappd.com/api/register
- Use a custom app prefix for the callback url.
- Your configuration object should contain the app id and your callback url e.g.
```js
{
appId: '123456789',
callback: 'testapp://authorize',
}
```
- Register your deep link scheme with android and ios as described for other apps.Usage
=====Create a configuration object for each of the providers you want to authorize with (required keys are in parenthesis):
- google (`appId`, `callback`)
- facebook (`appId`, `callback`)
- twitter (`appId`, `appSecret`, `callback`)
- tumblr (`appId`, `appSecret`, `callback`)See [secrets.example.js](https://github.com/adamjmcgrath/ReactNativeSimpleAuthExample/blob/master/secrets.example.js).
```javascript
import { google, facebook, twitter, tumblr } from 'react-native-simple-auth';google({
appId: '123-123abc.apps.googleusercontent.com',
callback: 'com.reactnativesimpleauthexample:/oauth2redirect',
}).then((info) => {
// info.user - user details from the provider
// info.credentials - tokens from the provider
}).catch((error) => {
// error.code
// error.description
});
```License
=======react-native-simple-auth is released under the MIT license.