// import { HttpService } from '@nestjs/axios'; import { Injectable, CanActivate, ExecutionContext, UnauthorizedException } from '@nestjs/common'; import { FxProviderService } from './provider.service'; @Injectable() export class ProvideGuard implements CanActivate { // constructor( private httpService: HttpService) { } constructor(private readonly providerService: FxProviderService) { } async canActivate(context: ExecutionContext): Promise { const req = context.switchToHttp().getRequest() let token = null if (req.headers) { token = req.headers.authorization } else if (req.handshake) { token = req.handshake.auth ? req.handshake.auth.token : null } if (!token) return false try { const data = await this.providerService.provide(token) req.user = data return data } catch (error) { console.log('provider error:', error) return false } } }