UNPKG

backend-google-login-ts

Version:

A secure and lightweight TypeScript package for handling Google OAuth2 authentication in Node.js backend applications. Simplifies the process of integrating Google login with built-in TypeScript support and zero dependencies.

118 lines (85 loc) • 2.97 kB
## šŸ” Backend Google Login [![npm version](https://img.shields.io/npm/v/"backend-google-login-ts.svg)](https://www.npmjs.com/package/"backend-google-login-ts) [![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue.svg)](https://www.typescriptlang.org/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) šŸš€ A lightweight TypeScript package for handling Google OAuth2 authentication in your backend application. #### ✨ Features - šŸ”’ Secure Google OAuth2 authentication - šŸ“¦ Zero dependencies - šŸ’Ŗ Full TypeScript support - ⚔ Promise-based API - šŸ› ļø Easy to integrate - šŸ”„ Automatic token handling #### šŸ“„ Installation ```bash npm install "backend-google-login-ts ``` Or with yarn: ```bash yarn add "backend-google-login-ts ``` #### šŸš€ Quick Start ```typescript import { loginWithGoogle } from '"backend-google-login-ts'; // Set up your Google OAuth credentials const options = { clientId: 'your-client-id', clientSecret: 'your-client-secret', redirectUrl: 'http://your-domain.com/auth/callback', authCode: 'auth-code-from-frontend', }; // Use the login function try { const userInfo = await loginWithGoogle(options); console.log('User logged in:', userInfo); } catch (error) { console.error('Login failed:', error); } ``` #### šŸ“‹ API Reference ###### `loginWithGoogle(options: LoginWithGoogleOptions)` ######## Parameters The function accepts an options object with the following properties: ```typescript interface LoginWithGoogleOptions { clientId: string; // Your Google OAuth2 client ID clientSecret: string; // Your Google OAuth2 client secret redirectUrl: string; // Your redirect URL authCode: string; // Authorization code from the frontend } ``` ######## Returns Returns a Promise that resolves with the user's information or rejects with an error. ######## Example Response ```typescript { id: '12345678', email: 'user@example.com', verified_email: true, name: 'John Doe', given_name: 'John', family_name: 'Doe', picture: 'https://....', locale: 'en' } ``` #### šŸ”’ Security - Never expose your `clientSecret` in the frontend code - Always validate the received data server-side - Store sensitive credentials in environment variables #### šŸ¤ Usage with Frontend This package is designed to work with any frontend implementation. Here's a basic flow: 1. Frontend initiates Google login 2. Google returns an auth code to your redirect URL 3. Frontend sends the auth code to your backend 4. Backend uses this package to exchange the code for user info 5. Backend creates a session/JWT for the user #### šŸ“ Error Handling The package throws descriptive errors when: - Required parameters are missing - Google API requests fail - Token exchange fails - Invalid credentials are provided ###### šŸ“„ License ## MIT Ā© [Mohammad Gholami] Made with ā¤ļø using TypeScript