All files / src/auth jwt.strategy.ts

100% Statements 9/9
100% Branches 2/2
100% Functions 2/2
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 231x 1x 1x   1x     1x   3x           1x              
import { Injectable } from '@nestjs/common';
import { PassportStrategy } from '@nestjs/passport';
import { ExtractJwt, Strategy } from 'passport-jwt';
import { UserRole } from '../user/entities/user.entity';
import { cookieExtractor } from './functions/cookie-extractor';
 
@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {
  constructor() {
    super({
      jwtFromRequest: ExtractJwt.fromExtractors([cookieExtractor]),
      secretOrKey: process.env.JWT_SECRET || 'dev_secret',
    });
  }
  async validate(payload: { sub: string; email: string; role: UserRole }) {
    return {
      userId: Number(payload.sub),
      email: payload.email,
      role: payload.role,
    };
  }
}