【发布时间】:2022-10-18 05:28:58
【问题描述】:
假设我们有以下用户模型。
{ id: ID, email: string, username: string }
然后我想定义2个查询:
- 所有者使用它来获取他们的设置页面,因此它包含敏感信息,例如电子邮件(可能是罪号)
- 被其他用户用来搜索用户(按用户名),我们这样做不是想暴露邮箱或sin号
我一直在研究文档,但找不到如何做到这一点。我正在考虑手动获取字段信息并根据查询解析它,但这似乎是一个疏忽。
更新: 这是我正在尝试做的事情:
class User { @Field( () => ID ) id: string; @Authorized("CURRENT_USER") @Field( { nullable: true } ) email: string; @Field() username: string; }解析器:
export default class UserResolver { @Authorized("CURRENT_USER") @Query( () => User ) async user(@Arg('username', () => String) username: string) { // TODO: if username is current user then allow email // else do not allow email, (I need auth checker in here) } }
【问题讨论】:
-
我正在考虑制作2个模型? 1 用于公共,1 用于私人,但这似乎很奇怪。
标签: node.js typescript graphql typegraphql