WrathChaos / react-native-social-auth-helper

React Native Social Auth Helper

Home Page:https://freakycoder.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

React Native Social Auth Helper

npm version npm Platform - Android and iOS License: MIT styled with prettier

Installation

Add the dependency:

npm i react-native-social-auth-helper

Peer Dependencies

IMPORTANT! You need install them
"@invertase/react-native-apple-authentication": ">= 2.1.5",
"@react-native-firebase/auth": ">= 14.8.0",
"@react-native-google-signin/google-signin": ">= 7.2.2",
"react-native-fbsdk-next": ">= 8.0.0",
"jwt-decode": "^3.1.2",

Usage

Import

import {
  appleLogin,
  facebookLogin,
  fetchFacebookUserData,
  googleLogin,
} from "react-native-social-auth-helper";

Facebook Login Usage

import {
  facebookLogin,
  fetchFacebookUserData,
} from "react-native-social-auth-helper";
import { AccessToken } from "react-native-fbsdk-next";

export const handleFacebookLogin = async () => {
  const { authCredential, accessToken } = await facebookLogin();
  const fbUserData = await fetchFacebookUserData(accessToken);
  const { id, email, name, picture } = fbUserData;
  await auth().signInWithCredential(authCredential);
  // Successfully login and fetched the facebook user data
  // ... your logic
};

Google Login Usage

Do not forget to add your webCientId for Google configuration

import { googleLogin } from "react-native-social-auth-helper";
import { GoogleSignin } from "@react-native-google-signin/google-signin";

GoogleSignin.configure({
  offlineAccess: false,
  webClientId: "your-web-client-id",
});

export const handleGoogleLogin = async () => {
  await GoogleSignin.hasPlayServices();
  const { authCredential, user } = await googleLogin();
  const { id, email, name, photo } = user;
  // Successfully login and fetched the google user data
  // ... your logic
};

Apple Login Usage

import { appleLogin } from "react-native-social-auth-helper";

export const handleGoogleLogin = async () => {
  const { appleAuthRequestResponse, userCredential } = await appleLogin();
  const { email, fullName } = appleAuthRequestResponse;
  const userData = {
    id: userCredential.user.uid,
    socialId: userCredential.user.providerData[0].uid,
    socialType: SOCIAL_TYPE.APPLE,
    email: email,
    username: fullName?.givenName || null,
    photo: userCredential.user.photoURL,
  };
  // Successfully login and fetched the apple user data
  // ... your logic
};

Future Plans

  • LICENSE
  • Write an article about the lib on Medium

Author

FreakyCoder, kurayogun@gmail.com

License

React Native Social Auth Helper is available under the MIT license. See the LICENSE file for more info.

About

React Native Social Auth Helper

https://freakycoder.com


Languages

Language:Java 35.1%Language:TypeScript 18.8%Language:C++ 16.0%Language:Objective-C++ 8.4%Language:JavaScript 8.0%Language:Objective-C 5.5%Language:Makefile 3.5%Language:Ruby 2.9%Language:Starlark 1.4%Language:Shell 0.3%