UNPKG

@ducvnv/mirai-cms-role

Version:

<p align="center"> <a href="https://mirailabs.co/" target="blank"><img src="https://mirailabs.co/_next/static/media/logo.2a6685c4.svg" width="120" alt="Nest Logo" /></a> </p>

46 lines (39 loc) 1.45 kB
import {env} from "../../index"; import API from '../api/service.api'; import {bodyRequestPermission} from '../model/requests/body.request.permission'; import {CanActivate, ExecutionContext, Injectable} from '@nestjs/common'; import {ResponseModel} from "../model/responses/api.response"; @Injectable() export class AuthGuard implements CanActivate { async canActivate(context: ExecutionContext): Promise<boolean> { const request = context.switchToHttp().getRequest(); const path = request.route.path; const payload = request.body; const token = this.getToken(request); if (!token) { return false; } return await this.auth(path, token, payload); } private async auth(_path: any, token: any, payload: any): Promise<boolean> { try{ const body = { pathRouter: _path, payload: payload, } as bodyRequestPermission; const result = await API.postApi(env.PERMISSION_URL, body, token, env.KEY_SERVICE) as ResponseModel; console.log(result.data) return result.data; }catch (e){ console.log(`[Error] Auth log : ${e}`) return false; } } private getToken(request: any) { try { return request.headers['authorization'].replace('Bearer ', ''); } catch (e) { return false; } } }