gatsby-plugin-google-gapi

A Gatsbyjs plugin for the Google API.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
gatsby-plugin-google-gapi
0.0.113 years ago4 years agoMinified + gzip package size for gatsby-plugin-google-gapi in KB

Readme

gatsby-plugin-google-gapi
Gatsby plugin to add google authentication.
This plugin is currently alpha quality. The API is subject to change. Please constribute at https://github.com/wt/gatsby-plugin-google-gapi.

Install

npm install --save gatsby-plugin-google-gapi

or
yarn add gatsby-plugin-google-gapi

How to use

Add the plugin to your gatsby-config.js:
plugins: [
  {
    resolve: `gatsby-plugin-google-gapi`,
    options: {
      apiKey: `{API_KEY}`,
      clientId: `{CLIENT_ID}`,
      discoveryURLs: [
        // These are the discovery docs for various Google APIs.
        // This can be empty.
        // Find more here: https://developers.google.com/discovery
        // This one is for the Google Drive v3 api.
        "https://www.googleapis.com/discovery/v1/apis/drive/v3/rest",
      ],
      // The permission scopes your app needs.
      // For auth only, this can be empty.
      // Find more here: https://developers.google.com/identity/protocols/oauth2/scopes
      // This one is for reading a writing all files in Google Drive.
      scopes: ["https://www.googleapis.com/auth/drive"],
    },
  },
]

Hooks

useAuthStatus

Returns

authed (bool?) - Indicates whether a user is logged in or not. Null if
status isn't available because the gapi lib is still initializing.
userFirstName (string) - The user's first name

Example

const Example = () => {
  const { authed, userFirstName } = useAuthStatus()

  if (authed === null) {
    return
      <>
        "Login status not available"
      </>
  } else {
    return
      <>
        {authed ? `Hello, ${userFirstName}` : "Not Logged In"}
      </>
  }

Methods

loginUser

Starts a Google authentication process for the site.

logoutUser

Logs off of the Google account for the site.

Demo

This plugin was originally developed by Wren Turkal for https://ymatyt.com/. Please check it out!