1.0.2 • Published 1 year ago

backend-google-login-ts v1.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

šŸ” Backend Google Login

npm version TypeScript License: 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

npm install "backend-google-login-ts

Or with yarn:

yarn add "backend-google-login-ts

šŸš€ Quick Start

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:

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

{
  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