【问题标题】:Is it possible to get the name of the method executed in resolver at runtime AppSync?是否可以在运行时 AppSync 中获取在解析器中执行的方法的名称?
【发布时间】:2019-12-16 17:48:45
【问题描述】:

我有一个由 auth-service + business-service 组成的 AppSync PIPELINE。

我在auth-service中实现了RBAC,所以根据用户的操作和角色,允许或拒绝business-service的执行.

我需要将 GraphQL Mutation 或 Query 字段(从客户端调用的方法)映射到操作(例如,如果用户尝试执行 Mutation:addUser,这就是操作)。

是否可以在运行时在解析器中获取客户端执行的方法? (例如 addUserdeletePost)。为了不必为每个查询和突变实现不同的身份验证服务?

【问题讨论】:

  • 该信息目前不可用,但在我们的路线图中。我一定会将此作为 +1 添加到此功能。

标签: aws-appsync


【解决方案1】:

类似的场景,这就是我正在做的事情:

  • 映射之前 - 将来自 Cognito 等的身份/声明保存到存储区。
  • 函数请求 - 检查存储,如果未授权 $util.error,否则 将操作名称和操作数详细信息存储在 stash 之前 继续。
  • 函数响应 - 执行任何其他过滤或所有权检查 在响应中,如果未经授权,则返回 $util.error/early。
  • 映射后 - 响应或传递的最终转换。

基本上,我觉得将有关实体的深入知识暴露给通用管道身份验证函数是一个坏主意,我更愿意让实体的解析器函数了解允许/禁止的内容。

【讨论】:

    猜你喜欢
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2019-09-09
    • 1970-01-01
    • 2012-09-19
    • 2012-06-24
    相关资源
    最近更新 更多