import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { PassportStrategy } from '@nestjs/passport'; import { ExtractJwt, Strategy } from 'passport-jwt'; import { User } from '@/users/entities/user.entity'; import { UsersService } from '@/users/users.service'; @Injectable() export class JwtStrategy extends PassportStrategy(Strategy) { constructor(configService: ConfigService, private readonly usersService: UsersService) { super({ jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), secretOrKey: configService.get('auth.jwtSecret'), ignoreExpiration: false, }); } validate({ id }: User): Promise { return this.usersService.findById(id); } }