import { Injectable, UnauthorizedException } from '@nestjs/common'; import { PassportStrategy } from '@nestjs/passport'; import { Strategy } from 'passport-local'; import { AuthService } from '../auth.service'; import { Admin } from '@database/entities/admin.entity'; @Injectable() export class LocalStrategy extends PassportStrategy(Strategy) { constructor(private readonly authService: AuthService) { super({ usernameField: 'account', passwordField: 'password', }); } async validate(account: string, password: string): Promise { const admin = await this.authService.validateUser(account, password); if (!admin) { throw new UnauthorizedException('账号或密码错误'); } return admin; } }