javascript - NestJS 为不同用户角色排除字段的策略?
问题描述
假设我有一个基本实体 ,ShopsEntity
它有一堆字段和一个秘密属性:
@ObjectType()
class ShopsEntity {
@Field()
name: string;
@Field()
rating: string;
@Field()
secret: string;
}
我不希望秘密属性被序列化,除非用户具有通过Nest Access Control定义的某个角色(该模块只允许将 RoleGuards 放置在解析器本身上,这意味着我需要每个角色不同的路由)。
因此,在向具有不同身份验证级别的同一端点发出请求后,管理员将获得:
{
"name": "name",
"rating": "rating",
"secret": "secret"
}
一个普通的查询用户会得到:
{
"name": "name",
"rating": "rating"
}
是否有一种声明性方式可以在这里进行属性级安全性,或者最好的解决方案是为每个安全性级别提供单独的 DTO?
解决方案
推荐阅读
- swift - Swift 中 MSAL 和 AD B2C 的登录问题
- java - 可以克隆 WebDriver 实例以便在测试用例中同时执行一些步骤
- google-sheets - 多个子句不起作用 - NOT 以
- django - django 模板标签作为另一个模板标签的参数传递
- ajax - Laravel Ajax 无法在 url 中传递参数,但可以使用常量
- php - Docker-compose 卷更改更新缓慢(如何修复)
- c# - Android Emulator 无法在 Visual Studio 2017 中启动
- python - 在渲染模板中绘制类属性
- c# - HttpResponse 的内容长度与纯文本不匹配
- excel - 如何修复 VBA 代码中的“需要对象”错误?