假设我有一个基本实体,ShopsEntity它有一堆字段和一个秘密属性:
@ObjectType()
class ShopsEntity {
@Field()
name: string;
@Field()
rating: string;
@Field()
secret: string;
}
我不希望秘密属性被序列化,除非用户具有通过Nest Access Control定义的特定角色(该模块只允许将 RoleGuard 放置在解析器本身上,这意味着每个角色我需要不同的路由)。
因此,根据对具有不同身份验证级别的同一端点的请求,管理员将获得:
{
"name": "name",
"rating": "rating",
"secret": "secret"
}
常规查询用户将获得:
{
"name": "name",
"rating": "rating"
}
有没有一种声明式的方式可以在这里进行财产级安全,或者最好的解决方案是为每个安全级别设置单独的 DTO?
梦里花落0921
相关分类