import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common'; import admin = require('firebase-admin'); @Injectable() export class AuthGuard implements CanActivate { async canActivate(context: ExecutionContext): Promise<boolean> { const request = context.switchToHttp().getRequest(); const authorization = request.headers['authorization']; if (authorization && authorization.startsWith('Bearer ')) { const token = authorization.substring(7, authorization.length); request.user = await admin.auth().verifyIdToken(token); return !!request.user; } return false; } }