import { Strategy } from 'passport-local' import { PassportStrategy } from '@nestjs/passport' import { Injectable, UnauthorizedException } from '@nestjs/common' import { AuthService } from '../auth.service' import { env } from 'process' @Injectable() export class LocalStrategy extends PassportStrategy(Strategy) { constructor(private authService: AuthService) { //super() //If you want to check user authenticate with custom column like 'email', try pass it. super({ usernameField: env.AUTH_USERNAME_FIELD }) } async validate(email: string, password: string): Promise { const user = await this.authService.validateUser(email, password) if (!user) { throw new UnauthorizedException() } return user } }