import { Injectable, CanActivate, ExecutionContext, HttpException, HttpStatus, } from '@nestjs/common'; import { Request } from 'express'; import { Observable } from 'rxjs'; @Injectable() export class AuthGuard implements CanActivate { canActivate( context: ExecutionContext, ): boolean | Promise | Observable { const http = context.switchToHttp(); const request = http.getRequest(); if (!(request.session as Record).user) { throw new HttpException('Please log in', HttpStatus.UNAUTHORIZED); } return true; } }