【问题标题】:AWS Amplify GraphQL authorization based on field values基于字段值的 AWS Amplify GraphQL 授权
【发布时间】:2021-10-04 07:25:47
【问题描述】:

我有一个 AWS Amplify 项目,它在 Cognito 中有三个不同的用户组。管理员、教师和学生组。我也有一个像这样的 GraphQL Schema。

type DriveTime @model {
  id: ID!
  start: AWSDateTime!
  end: AWSDateTime!
  openRegistration: AWSDateTime!
  closeRegistration: AWSDateTime!
  vehicle: Vehicle @connection(name: "VehicleDriveConnection")
  instructor: Instructor @connection(name: "InstructorDriveConnection")
  student: Student @connection(name: "StudentDriveConnection")
  evaluation: DriveEvaluation @connection(name: "DriveEvaluationConnection")
}

基本上管理员或讲师会安排学生可以注册的时间。

我想创建允许以下内容的授权规则:

  • 管理员组可以读取、写入、更新和删除任何内容。

  • 教师组可以读取、写入、更新和删除任何内容。

  • 学生组只能读取(当前日期在 openRegistration 和 closeRegistration 字段内)或(学生字段与登录的学生匹配)。

  • 如果当前日期在 openRegistration 和 closeRegistration 字段内,并且学生字段为空,则学生可以自己注册 DriveTime。

  • 如果学生字段与登录的学生匹配,并且当前日期早于开始字段,则学生可以写入学生字段以取消注册或取消。

Amplify GraphQL @Auth 能做到这一点吗?

【问题讨论】:

    标签: graphql amazon-dynamodb amazon-cognito aws-amplify aws-serverless


    【解决方案1】:

    【讨论】:

    • 我知道@Auth 能够满足我列出的一些要求,但不确定其他要求。我最终让它与使用this tutorial 的自定义 Lambda 解析器一起工作。然后,我使用this gist 作为指导,了解如何配置权限以从 Lambda 解析器调用我的 GraphQL API。
    猜你喜欢
    • 2021-05-15
    • 1970-01-01
    • 2021-08-19
    • 2022-10-24
    • 2018-07-21
    • 1970-01-01
    • 2018-08-04
    • 2020-01-05
    • 2019-12-14
    相关资源
    最近更新 更多