Skip to content

buttercup/google-oauth2-client

Repository files navigation

Google OAuth2 Client

Minimal compatibility-first Google OAuth2 client implementation

Buttercup npm version Tests status

About

This library is a minimal implementation of the google-auth-library project, designed to be compatible with NodeJS, the browser and React Native. The google-auth-library package has had problems with compatibility in this regard and rather than wait for that to get sorted, this library was released to solve the exact problem without the overhead of project politics, wait times and package excess (extra features not needed that are causing the incompatibilities in the first place).

This library is targeted at NodeJS but should work everywhere.

Usage

Install by running npm install @buttercup/google-oauth2-client --save.

Import the OAuth2Client class to get started, similarly to the original implemenation:

import { OAuth2Client } from "@buttercup/google-oauth2-client";

const client = new OAuth2Client(
    "my-client-id",
    "my-client-secret",
    "http://redirect.uri"
);

const authURL = client.generateAuthUrl(/* ... */);

Implemented features

The following methods are implemented:

Method Example Description
generateAuthUrl generateAuthUrl({ access_type: "offline", prompt: "consent", scope: "profile" }) Generate an authorisation URL
exchangeAuthCodeForToken await exchangeAuthCodeForToken(authCode) Get the tokens for an authorisation code
refreshAccessToken await refreshAccessToken(refreshToken) Refresh the tokens