Можно ли использовать заголовок запроса в качестве параметра внутри пользовательской функции FaunaDB (UDF)?

Могу ли я каким-то образом получить значение заголовка внутри тела UDF?

Идея состоит в том, чтобы реализовать наш собственный ABAC на основе настраиваемых параметров заголовка (таких как userId, роль, ключ, UDF и т. Д.).


person yury.hrynko    schedule 12.04.2021    source источник


Ответы (2)


Запросы фауны не имеют доступа к заголовкам запросов.

person eskwayrd    schedule 12.04.2021

Вы можете использовать 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

Надеюсь это поможет.

person floydianslips    schedule 12.04.2021