@vroomlabs/react-gauth-button

Vroom Auth Button Using Google Auth

Usage no npm install needed!

<script type="module">
  import vroomlabsReactGauthButton from 'https://cdn.skypack.dev/@vroomlabs/react-gauth-button';
</script>

README

Vroom Auth Login w/Google

Install

npm install @vroomlabs/react-gauth-button

How to use

import React from 'react';
import ReactDom from 'react-dom';
import VroomAuthLogin from '@vroomlabs/react-gauth-button';  

const authResponse = (response) {
    console.log(response)
}

ReactDom.render(
    <VroomAuthLogin 
        clientId="someid.apps.googleusercontent.com"
        buttonText="Sign In"
        onSuccess={authResponse}
        onFailure={authResponse}
    />,
    document.getElementById('vroom-auth')
);

Component can accept child components (e.g., icons)

onSuccess callback

If offlineMode is false, callback will return the GoogleUser object.

If offlineMode is true, callback will return the offline GoogleAuth Code for use on the server.

Hosted Domain is defaulted to vroom.com, make sure to validate the id_token (a JWT) returned by Google in your service:

  1. The authResponse(response){...} callback function will return a JWT as response.hg.id_token
  2. Send the JWT to the backend service (suggest using Auth header)
  3. Recommendation: Backend service should verify the id_token by using a JWT library, jsonwebtoken. Use Google's public key to verify the token's signature
  4. The returned decoded token should have an hd key value equal to the hosted domain specified.
    hd = hosted domain

Args

arg type default note
clientid string REQUIRED - none
hostedDomain string vroom.com
scope string none Google scopes can be found here
offlineMode boolean false
onSuccess function REQUIRED - none
onFailure function REQUIRED - none
onRequest function none
buttonText string Sign In with Google
className string none
style object none
disabledStyle object none
loginHint string none
prompt string none
tag string button Set element tag (e.g., button, a, div, span)
authLoad boolean false
fetchBasicProfile boolean true
disabled boolean false
uiMode string popup Alternative is uiMode=redirect after login. redirectUri needed if set
redirectUri string none Must be set if uiMode=redirect
isSignedIn boolean none Will return GoogleUser object, if user has granted permission for your app

onSuccess callback - Auth Code

property name value definition
code object offline token

onSuccess callback - Token (Default)

Provides GAuth User Object with access to GoogleUser methods.
Returned values
| property name | value | definition | |:-------------:|:-------:|:-------------:| | googleId | string | GAuth User ID | | tokenId | string | Token ID | | accessToken | string | Access Token | | tokenObject | object | Token object | | profileObject | object | User Profile object |

onFailure callback

property name value definition
error string error code
details string error message

Issues / Feedback

Please report any issues and suggest feedback through the repo! I hope you find the VroomAuth component useful and would be happy to give guidance on getting you going!

Happy Coding!
Puches

Created by

John Rodkey
Copyright © 2017 Vroom, Inc.
All Rights Reserved