jwt.strategy.ts 769 B

1234567891011121314151617181920212223242526
  1. import type { JwtConfig, JwtPayload } from '@/types';
  2. import { Injectable } from '@nestjs/common';
  3. import { ConfigService } from '@nestjs/config';
  4. import { PassportStrategy } from '@nestjs/passport';
  5. import { ExtractJwt, Strategy } from 'passport-jwt';
  6. @Injectable()
  7. export class JwtStrategy extends PassportStrategy(Strategy) {
  8. constructor(configService: ConfigService) {
  9. super({
  10. ignoreExpiration: false,
  11. jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
  12. secretOrKey: configService.get<JwtConfig>('jwt').secret,
  13. });
  14. }
  15. async validate(payload: JwtPayload) {
  16. console.log('jwt strategy validate payload', payload);
  17. return {
  18. id: payload.id,
  19. roles: payload.roles,
  20. username: payload.username,
  21. };
  22. }
  23. }