universo-platform-3d
30 строк · 721.0 Байт
1import { Observable } from 'rxjs'2import {3Injectable,4CanActivate,5ExecutionContext,6Logger
7} from '@nestjs/common'8
9/**
10* @description Only use for controllers, not websockets
11*/
12@Injectable()13export class GodotServerGuard implements CanActivate {14constructor(private readonly logger: Logger) {}15
16canActivate(17context: ExecutionContext18): boolean | Promise<boolean> | Observable<boolean> {19const request = context.switchToHttp().getRequest()20const check =21request.headers?.authorization == `Bearer ${process.env.WSS_SECRET}`22if (!check) {23this.logger.log(24'Bearer secret Authorization check failed',25GodotServerGuard.name26)27}28return check29}30}
31