是否可以在 FaunaDB 用户定义函数 (UDF) 中使用请求 header 作为参数?

Is it possible to use request header as a parameter inside FaunaDB user defined function (UDF)?

我能否以某种方式在 UDF 的 body 中获取 header 的值?

我们的想法是基于自定义 header 参数(如 userId、角色、密钥、UDF 等)实现我们自己的 ABAC。

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

您可以使用 Fauna 生成令牌,您可以在 headers 中使用这些令牌来查询数据。创建用户时,您将创建一个 username/email 和一个将作为“凭据”存储的密码。您可以创建一个登录 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

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

希望对您有所帮助。