GraphQL 授权与 Auth0 集成实战
1. @auth GraphQL 模式指令概述
在 GraphQL 中,为了对特定操作应用授权规则,我们使用 @auth 模式指令。此前探讨的 isAuthenticated 和 roles 这两个 @auth 规则,仅使用了 JWT 负载中的值(对于 isAuthenticated 规则,仅验证有效令牌的存在)。接下来将探索另外三个规则,它们会利用数据库中的值来实施授权规则。
2. 允许授权规则(Allow Authorization Rule)
为了保护用户类型,之前创建了一个规则,要求经过身份验证的用户具备管理员角色。现在添加一个额外的授权规则,允许用户读取自己的用户信息。
extend type User
@auth(
rules: [
{ operations: [READ], allow: { userId: "$jwt.sub" } },
{ roles: ["admin"] }
]
)
这里将新的 allow 规则与现有的 roles 规则相结合。由于 rules 参数接受一个规则数组,这些规则采用“或”逻辑。要访问用户类型,请求的 JWT 声明必须符合规则数组中定义的至少一个授权规则。也就是说,经过身份验证的用户要么是管理员,要么与所
超级会员免费看
订阅专栏 解锁全文
877

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



