自定义的guard类
@Injectable()
export class PermissionGuard implements CanActive {
constructor(private reflector: Reflector)
canActivate(context: ExecutionContext): Boolean {
// 提取装饰器参数备用
const requiredPermissions = this.reflector.getAllAndMerge<string[]>(‘permissions‘, [
context.getHandler(),
context.getClass(),
]);
// 提取请求参数备用
const { request } = context.switchToHttp().getRequest();
// 权限检查逻辑
const result = requiredPermissions.some((permission) => reuqest?.claim?.includes(permission))
return result;
}
}
自定义的权限检查装饰器
原文:https://www.cnblogs.com/wyp1988/p/14863900.html