GraphQL API 认证与授权:从规则设置到 Auth0 集成
1. 避免“Forbidden”错误:使用 where 授权规则
当非管理员用户请求的用户对象的 userId 与 JWT 中的 sub 声明不匹配时,会出现“Forbidden”错误。为避免此类错误,可使用 where 授权规则自动过滤查询结果,仅返回经过身份验证的用户有权访问的数据。
1.1 使用 where 授权规则的代码示例
以下是使用 where 授权规则的代码:
extend type User
@auth(
rules: [
{ operations: [READ], where: { userId: "$jwt.sub" } },
{ operations: [CREATE, UPDATE, DELETE], roles: ["admin"] }
]
)
query {
users {
name
userId
}
}
1.2 生成的 Cypher 查询
生成的 Cypher 查询会添加一个谓词,确保数据库中节点的 userId 属性值与 JWT 的 sub 值匹配:
MATCH (this:User)
WHERE this.userId
超级会员免费看
订阅专栏 解锁全文
950

被折叠的 条评论
为什么被折叠?



