rajchourasia / react-native-goodreads-login

React native login, implementing third party OAuth authentication (Goodreads), with Launch Screen, Video Background and Redux Integration

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

React Native Goodreads (OAuth) Login

This is a sample react native project implementing third party OAuth authentication, with Launch Screen, Video Background and Redux Integration. Currently only IOS is implemented.

I have chosen Goodreads platform as it does not have a well documentation API, and SDK support, like Facebook, Twitter and other popular social platforms. Also unexpectedly, most of the API response from Goodreads is in XML format so the project handles API responses in both Json and XML.

This same code (with modifications) can be used for authentication and API calls with any other OAuth based third party platform.

Config

Enter Goodreads consumer_key and consumer_secret in config/goodreads.js. Thats it.

Features

  • Third Party OAuth integration (Goodreads)
  • API calls handling XML and Json response data
  • Redux Integration with Redux logging in dev mode
  • Handling Launch Screen
  • Video Background
  • Airbnb Eslint

Plugins Used

For OAuth and API calls

react-native-oauth is used for authentication and API calls. This works out of the box for facebook, twitter, google, github and slack.

There is provision for adding any other OAuth service but it did not work as expected. There is also no support for XML response format. I had to create PR 86 and PR 88 to tackle both these issues. As these PRs have not been merged, for the time being, I am using my fork of the same repository.

Others

react-native-splash-screen is used to handle Launch Screen, while background tasks complete.

react-native-video is used for video background in Login screen.

redux-logger is used log action calls and state in development mode.

Demo

Demo gif

Notes

License

MIT

About

React native login, implementing third party OAuth authentication (Goodreads), with Launch Screen, Video Background and Redux Integration

License:MIT License


Languages

Language:Objective-C 83.7%Language:Shell 8.8%Language:JavaScript 5.6%Language:Python 0.8%Language:Java 0.8%Language:Ruby 0.3%