Skip to content

React Native module provides auth methods via social networks using native APIs

License

Notifications You must be signed in to change notification settings

xxsnakerxx/react-native-social-auth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

preview

Table of contents

Dependencies

  • React Native >= 0.40.0 (use 0.5 branch that works with previous versions of RN)

What using

  • facebook
    • FacebookSDK
  • twitter
    • Accounts.framework and reverse auth (iOS)

Example

here

Installation

Common

  1. Install package via npm:
  npm install react-native-social-auth
  1. Inside your code include JS part by adding
import SocialAuth from 'react-native-social-auth';

Perform platform specific setup - iOS - Android

Usage

Facebook

Constants

  • SocialAuth.facebookPermissionsType.read
  • SocialAuth.facebookPermissionsType.write

setFacebookApp({id, name})

SocialAuth.setFacebookApp({id: 'APP_ID', name: 'DISPLAY_NAME'});

getFacebookCredentials(permissions, permissionsType)

returns a promise
  • resolved with credentials (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))

Twitter

getTwitterSystemAccounts()

returns a promise
  • resolved with accounts (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)

    #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 with credentials (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));

Contributing

Just submit a pull request!

Copyright and license

Code and documentation copyright 2015 Dmitriy Kolesnikov. Code released under the MIT license.

About

React Native module provides auth methods via social networks using native APIs

Resources

License

Stars

Watchers

Forks

Packages

No packages published