React Native Social Auth
React Native module provides auth methods via social networks using native APIs.
Very important! The module doesn't provide full stack communication with social networks API, it made just for auth.
Table of contents
- Common - iOS - Android - Facebook - TwitterDependencies
- React Native >=
0.40.0
(use0.5
branch that works with previous versions of RN)
What using
facebook
twitter
- __Accounts.framework and reverse auth (iOS)__
Example
hereInstallation
Common
- Install package via npm:
```javascript
npm install react-native-social-auth
```- Inside your code include JS part by adding
```javascript import SocialAuth from 'react-native-social-auth'; ```
Perform platform specific setup
- [iOS](ios#readme)
- [Android](android#readme)
Usage
Constants
-SocialAuth.facebookPermissionsType.read
- SocialAuth.facebookPermissionsType.write
setFacebookApp({id, name})
SocialAuth.setFacebookApp({id: 'APP_ID', name: 'DISPLAY_NAME'});
getFacebookCredentials(permissions, permissionsType)
-permissions
(Array of strings)
- permissionsType
(one of facebookPermissionsType)returns a promise
- resolved withcredentials
(object contains accessToken
, userId
, hasWritePermissions
)
- rejected with error
(object contains code
and message
)SocialAuth.getFacebookCredentials(["email", "user_friends"], SocialAuth.facebookPermissionsType.read)
.then((credentials) => console.log(credentials));
.catch((error) => console.log(error))
getTwitterSystemAccounts()
returns a promise
- resolved withaccounts
(array of objects like {username: "userName"}
)
- rejected with error
(object contains code
and message
)SocialAuth.getTwitterSystemAccounts()
.then((accounts) => console.log(accounts))
.catch((error) => console.log(error));
getTwitterCredentials(username, reverseAuthResponse)
-username
(Twitter account user name without @
)
- reverseAuthResponse
(is a string that returns by twitter's api when we do the first part of reverse auth)- __you can define `key` and `secret` of your twitter app in [RNSocialAuthManager.m](ios/RNSocialAuthManager.m)__
```
#define twitterAppConsumerKey @"..."
#define twitterAppConsumerSecret @"..."
```
#### But this way is not SAFE!
- other option is that your server can perform the first part of reverse auth and send you back response of it.
It looks like this
```
OAuth oauth_timestamp="...", oauth_signature="...", oauth_consumer_key="...", oauth_nonce="...", oauth_token="...", oauth_signature_method="HMAC-SHA1", oauth_version="1.0"
```
Then you just pass it to the function as a second parameter
returns a promise
- resolved withcredentials
(object contains oauthToken
, oauthTokenSecret
, userName
)
- rejected with error
(object contains code
and message
)SocialAuth.getTwitterCredentials("dimkol")
.then((credentials) => console.log(credentials))
.catch((error) => console.log(error));