import { Injectable } from "@nestjs/common"; import { ConfigService } from "@nestjs/config"; import { PassportStrategy } from "@nestjs/passport"; import { ExtractJwt, Strategy } from "passport-jwt"; import { JWT_STRATEGY_NAME } from "../../../common/constants"; import { ITokenPayload } from "../interfaces/IToken-payload"; @Injectable() export class JwtStrategy extends PassportStrategy(Strategy, JWT_STRATEGY_NAME) { constructor(configService: ConfigService) { super({ jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), ignoreExpiration: false, secretOrKey: configService.getOrThrow("JWT_SECRET_KEY"), }); } async validate(payload: ITokenPayload) { return { id: payload.id, permissions: payload.permissions }; // return { id: payload.id, roles: payload.roles, permissions: payload.permissions }; } }