backend-google-login-ts
v1.0.2
Published
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.
Maintainers
Readme
🔐 Backend Google Login
🚀 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-tsOr 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: '[email protected]',
verified_email: true,
name: 'John Doe',
given_name: 'John',
family_name: 'Doe',
picture: 'https://....',
locale: 'en'
}🔒 Security
- Never expose your
clientSecretin 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:
- Frontend initiates Google login
- Google returns an auth code to your redirect URL
- Frontend sends the auth code to your backend
- Backend uses this package to exchange the code for user info
- 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
