Socket
Socket
Sign inDemoInstall

@nightowl-developers/use-google-auth

Package Overview
Dependencies
0
Maintainers
2
Versions
2
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @nightowl-developers/use-google-auth

A single React Hook that loads the google api script in the head of your application and provides login and logout with Google functionality.


Version published
Weekly downloads
1
Maintainers
2
Install size
28.2 kB
Created
Weekly downloads
 

Readme

Source

Use-Google-Auth

Pipeline

A single React Hook that loads the google api script in the head of your application and provides login and logout with Google functionality.

Installation

npm install @nightowl-developers/use-google-auth

or

yarn add @nightowl-developers/use-google-auth

Usage

Usage is pretty straight-forward. The hook returns two functions that can be attached to a button element.

import * as React from 'react'

import useGoogleAuth from '@nightowl-developers/use-google-auth'

const MyComponent = () => {
  const [isLoggedIn, setIsLoggedIn] = React.useState(false)
  
  const {
    signIn,
    signOut,
  } = useGoogleAuth({
    clientId: 'your-google-client-id',
    onLoginChange: (loggedIn) => {
      setIsLoggedIn(loggedIn)
    },
    onLoginSuccess: (response) => {
      setIsLoggedIn(true)
      console.log('logged in success', response)
    },
    onLoginFailure: (error) => {
      setIsLoggedIn(false)
      console.log('logged in failure', error)
    },
  })
  
  return <>
    {isLoggedIn && <button onClick={signIn}>Sign In</button>}
    
    {!isLoggedIn && <button onClick={signOut}>Sign Out</button>}
  </>
}

Hook API

The useGoogleAuth hook takes an object with the following properties.

PropertyDefault ValueValuesDescription
clientIdThe Google Client Id from your Google Developer Console.
cookiePolicy'single_host_origin''single_host_origin', 'none', string
hostedDomainsThe G Suite domain in which users must belong to sign in.
fetchBasicProfileAdds 'profile email and openid' to scopes.
onLoginChangeCallback function when auth changes without interaction.
onLoginSuccessCallback function when a user authenticates successfully.
onLoginFailureCallback function when a user fails to authenticate.
onLogoutFailureCallback function when a user logs out successfully.
onLogoutSuccessCallback function when a user fails to log out.
prompt'select_account''consent', 'select_account', 'none'The consent flow mode (consent, select_account, or none).
redirectUrlThe uri to redirect to when uxMode is 'redirect'.
scope['profile']An arry of permission scopes.
src'https://apis.google.com/js/platform.jsThe URL to the Google API javascript script.
stayLoggedInfalsetrue, falseWhen true, the user will stay logged in between visites to your site.
uxMode'popup''popup', 'redirect'Determines if the user will be redirected away from the site or if a prompt will be displayed.

important: The only required property is clientId.

Callback Signatures

Below are all of the Typescript callback signature definitions.

onLoadFailure
  onLoadFailure: (error: any) => void
onLoginChange
(loggedIn: boolean) => void
onLoginFailure
(error: GoogleFailureObject) => void
onLoginSuccess
(response: GoogleSuccessObject) => void
onLogoutFailure
(error: GoogleFailureObject) => void

onLogoutSuccess

() => void

Google Object Definitions

GoogleSuccessObject
GoogleSuccessObject {

}
GoogleFailureObject
GoogleFailureObject {

}

Credit to Original Author

This package is a moderately refactored version of React Google Login. Below are the changes that have been made to fit my own needs.

  • code simplified to a single React Hook
  • improved Hook prop names to better describe their use-case
  • appens the google api script to the element
  • added onLoginChange callback prop to listen to revoked permissions or expired tokens
  • added onLogoutSuccess callback prop to execute code when a user successfully logs out

Keywords

FAQs

Last updated on 04 Feb 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc