node-pt / src /modules /auth /local.strategy.ts
bardd's picture
first commit
7b850b7
import { Strategy } from 'passport-local';
import { PassportStrategy } from '@nestjs/passport';
import {
HttpException,
HttpStatus,
Injectable,
UnauthorizedException,
} from '@nestjs/common';
import { AuthService } from './auth.service';
@Injectable()
export class LocalStrategy extends PassportStrategy(Strategy) {
constructor(private authService: AuthService) {
super({ usernameField: 'identifier' });
}
async validate(
identifier: string,
password: string,
isAdmin: boolean = false,
): Promise<any> {
console.log(`IDENTIFIER =>`, identifier);
const user = await this.authService.validateUser(identifier, password);
if (!user) {
throw new UnauthorizedException('Incorrect username or password');
}
if ((user && user.deletedAt) || (user && user.isDeleted === true)) {
throw new HttpException(
'Your account has been deleted',
HttpStatus.FORBIDDEN,
);
}
return user;
}
}