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
Markdown
## š Backend Google Login
[](https://www.npmjs.com/package/"backend-google-login-ts)
[](https://www.typescriptlang.org/)
[](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