nestjs-google-auth v1.0.10
Google Login Package for NestJS
A simple and reusable package for integrating Google login with NestJS using passport-google-oauth2
. This package simplifies the process of authenticating users with Google by providing the strategy and module, leaving the control of user flow and logic up to you.
Features
- Easy-to-use package for Google login integration with NestJS
- Pre-configured
passport-google-oauth2
strategy - Customizable user validation logic (you implement the controller and service)
Installation
Install the package via npm:
npm install nestjs-google-auth
Install the necessary Passport dependencies if they are not already installed
npm install passport passport-google-oauth2
Install the type definitions for Passport (for TypeScript support):
npm install --save-dev @types/passport
Install the express-session and passport if you are using sessions (if the package is not already installed):
npm install passport express-session
Add environment variables to your .env file:
GOOGLE_CLIENT_ID=your-google-client-id GOOGLE_CLIENT_SECRET=your-google-client-secret GOOGLE_CALLBACK_URL=your-google-callback-url
Usage
Import the GoogleAuthModule & GoogleAuthController to your AppModule:
@Module({ imports: [ GoogleAuthModule.forRoot({ clientID: process.env.GOOGLE_CLIENT_ID, clientSecret: process.env.GOOGLE_CLIENT_SECRET, callbackURL: process.env.GOOGLE_CALLBACK_URL, scope: ['profile', 'email'], session: false, }), ], controllers: [AppController, AuthController], providers: [AppService], }) export class AppModule {}
If you are using sessions, you should configure the session in your main.ts file using express-session:
app.use( session({ secret: 'your-secret-key', resave: false, saveUninitialized: true, }), ); app.use(passport.session());
Test your application by redirecting to the default routes "/auth/google"