1.0.6 • Published 2 years ago

google-one-tap v1.0.6

Weekly downloads
21
License
ISC
Repository
github
Last release
2 years ago

Google One Tap Login

Demo (Nextjs): https://google-one-tap-taupe.vercel.app

Sign up users with a single tap and keep them signed in automatically.

Install

npm install google-one-tap --save

How to use

React

import googleOneTap from 'google-one-tap';

const options = {
	client_id: '___CLIENT_ID___', // required
	auto_select: false, // optional
	cancel_on_tap_outside: false, // optional
	context: 'signin', // optional
};

googleOneTap(options, (response) => {
	// Send response to server
	console.log(response);
});

Vue

import googleOneTap from 'google-one-tap';
export default {
	mounted() {
		const options = {
			client_id: '___CLIENT_ID___', // required
			auto_select: false, // optional
			cancel_on_tap_outside: false, // optional
			context: 'signin', // optional
		};
		googleOneTap(options, (response) => {
			// Send response to server
			console.log(response);
		});
	},
};

Options

NameTypeRequiredDescription
client_idStringtrueYour application's client ID
auto_selectBooleanfalseEnables automatic selection.null
cancel_on_tap_outsideBooleanfalseCancels the prompt if the user clicks outside the prompt.
contextStringfalseThe title in the One Tap prompt. Allowed parameters: "signin", "signup", "use"
login_uriURLfalseThe URL of your login endpoint. The Sign In With Google button redirect UX mode uses this attribute.
prompt_parent_idStringfalseThe DOM ID of the One Tap prompt container element
nonceStringfalseA random string for ID tokens
state_cookie_domainStringfalseIf you need to call One Tap in the parent domain and its subdomains, pass the parent domain to this field so that a single shared cookie is used.
ux_modeStringfalseThe Sign In With Google button UX flow Allowed parameters: "redirect", "popup"
allowed_parent_originString-ArrayfalseThe origins that are allowed to embed the intermediate iframe. One Tap will run in the intermediate iframe mode if this field presents.
itp_supportBooleanfalseEnables upgraded One Tap UX on ITP browsers.

Server

Using one of the Google API Client Libraries (e.g. Java, Node.js, PHP, Python) is the recommended way to validate Google ID tokens in a production environment.

npm install google-auth-library --save

Node.js

const { OAuth2Client } = require('google-auth-library');
const client = new OAuth2Client(CLIENT_ID);
async function verify() {
	const ticket = await client.verifyIdToken({
		idToken: token,
		audience: CLIENT_ID, // Specify the CLIENT_ID of the app that accesses the backend
		// Or, if multiple clients access the backend:
		//[CLIENT_ID_1, CLIENT_ID_2, CLIENT_ID_3]
	});
	const payload = ticket.getPayload();
	const userid = payload['sub'];
	// If request specified a G Suite domain:
	// const domain = payload['hd'];
}
verify().catch(console.error);