【问题标题】:Is it possible to use request header as a parameter inside FaunaDB user defined function (UDF)?是否可以在 FaunaDB 用户定义函数 (UDF) 中使用请求标头作为参数?
【发布时间】:2021-04-12 17:05:04
【问题描述】:

我可以在 UDF 的正文中以某种方式获取标头的值吗?

我们的想法是基于自定义头部参数(如 userId、role、key、UDF 等)实现我们自己的 ABAC。

【问题讨论】:

    标签: header user-defined-functions abac faunadb


    【解决方案1】:

    动物群查询无权访问请求标头。

    【讨论】:

      【解决方案2】:

      您可以使用 Fauna 生成可在标题中用于查询数据的令牌。创建用户时,您将创建一个用户名/电子邮件和一个密码,该密码将存储为“凭据”。您可以创建登录 UDF 和 user_by_email 索引,用于验证用户并发出令牌。 登录 UDF 如下所示:

      Query(
        Lambda(
          ["data"],
          Create(Collection("User"), {
            credentials: { password: Select("password", Var("data")) },
            data: {
              firstName: Select("firstName", Var("data")),
              lastName: Select("lastName", Var("data")),
              email: Select("email", Var("data")),
              role: Select("role", Var("data")),
              phone: Select("phone", Var("data")),
            }
          })
        )
      )
      

      user_to_email 索引将如下所示:

      Source Collection: User
      Index Name: user_by_email
      Terms: data.email
      Values: Serialized: true
      

      这里是 Fauna 用户认证文档的链接:https://docs.fauna.com/fauna/current/tutorials/authentication/user.html

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-13
        • 2019-04-14
        • 1970-01-01
        • 2019-08-03
        • 2021-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多