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!