import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common'; import { Observable } from 'rxjs'; import type { Response, Request } from 'express'; @Injectable() export class AuthGuard implements CanActivate { canActivate( context: ExecutionContext, ): boolean | Promise | Observable { const request = context.switchToHttp().getRequest(); const response = context.switchToHttp().getResponse(); const authHeader = request.header('Authorization'); if (!authHeader) return true; // false; const [, token] = authHeader.split(' '); if (!token) return true; // false // Validate `token` JWT here response.locals.token = token; return true; } }