假设我有一个基础实体ShopsEntity
,它具有许多字段以及一个秘密属性:
@ObjectType()
class ShopsEntity {
@Field()
name: string;
@Field()
rating: string;
@Field()
secret: string;
}
除非用户具有通过Nest Access Control定义的特定角色,否则我不希望将secret属性序列化(该模块仅允许将RoleGuard放置在解析程序本身上,这意味着我需要每个角色使用不同的路由角色)。
因此,在对具有不同身份验证级别的同一端点的请求之后,管理员将获得:
{
"name": "name","rating": "rating","secret": "secret"
}
和常规查询用户将获得:
{
"name": "name","rating": "rating"
}
这里是否有一种声明性的方式可以进行属性级别的安全性,还是针对每个安全级别具有单独的DTO的最佳解决方案?