35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import {
|
|
CanActivate,
|
|
ExecutionContext,
|
|
Injectable,
|
|
ForbiddenException,
|
|
} from '@nestjs/common';
|
|
import { RedisHandlers } from '@/src/utils/auth/redis_handlers';
|
|
|
|
@Injectable()
|
|
export class AuthControlGuard implements CanActivate {
|
|
constructor(private cacheService: RedisHandlers) {}
|
|
|
|
async canActivate(context: ExecutionContext): Promise<boolean> {
|
|
const req = context.switchToHttp().getRequest();
|
|
const accessToken = this.cacheService.mergeLoginKey(req);
|
|
console.log('AuthControlGuard', accessToken);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
@Injectable()
|
|
export class EndpointControlGuard implements CanActivate {
|
|
constructor(private cacheService: RedisHandlers) {}
|
|
|
|
async canActivate(context: ExecutionContext): Promise<boolean> {
|
|
const req = context.switchToHttp().getRequest();
|
|
// const selectToken = this.cacheService.mergeSelectKey(req);
|
|
// const method = req.method;
|
|
// const path = req.route?.path;
|
|
const accessObject = await this.cacheService.getSelectFromRedis(req);
|
|
console.log('EndpointControlGuard', accessObject);
|
|
return true;
|
|
}
|
|
}
|