【问题标题】:How to access public api in hasura如何访问 hasura 中的公共 api
【发布时间】:2020-07-02 00:05:29
【问题描述】:

我正在运行一个带有 admin secret 的 docker 容器。在下图中,您可以在权限窗口下看到角色。

对于category 表,我将public 角色设置为SELECT 选项,并且该角色访问任何查询没有任何限制。

但我的问题是我无法使用public 角色访问查询,hasura 引擎询问admin-secret。见下图。 如何在不提供管理员凭据的情况下访问此 API?

【问题讨论】:

  • 您是否将HASURA_GRAPHQL_UNAUTHORIZED_ROLE 设置为“public”或在启动命令中使用了--unauthorized-role=public 标志?
  • @avimoondra 我在启动时没有设置
  • 这很可能是问题所在!看起来您在 JWT 模式下运行,并且没有通过“Authorization: Bearer ”标头。

标签: graphql hasura


【解决方案1】:

相关文档:https://hasura.io/docs/1.0/graphql/manual/auth/authentication/unauthenticated-access.html#unauthenticated-public-access

如果您使用基于 webhook 的身份验证,“对于未经身份验证的访问,您可以使用您定义的未经身份验证的角色返回 200 状态响应,例如:{ "x-hasura-role": "<anonymous-role>" }。”

如果您使用基于 jwt 的身份验证,“您可以使用环境变量 HASURA_GRAPHQL_UNAUTHORIZED_ROLE--unauthorized-role 标志为未经身份验证(未登录)的用户设置角色。”

未经身份验证的角色可以被称为任何东西,在您的情况下它将是“公共的”

【讨论】:

  • 我是否必须在请求标头中传递 HASURA_GRAPHQL_UNAUTHORIZED_ROLE 这个值为匿名。我已经设置了这个角色并公开了 api。现在,我想从 Apollo 调用那个 api。我的 Hasura 实例设置为 JTW 模式。但是我想从 vue 应用程序中的 apollo 访问一些 api,我还设置了 HASURA_GRAPHQL_UNAUTHORIZED_ROLE 角色
猜你喜欢
  • 2015-11-20
  • 2020-07-01
  • 2021-11-29
  • 1970-01-01
  • 1970-01-01
  • 2014-08-09
  • 1970-01-01
  • 2021-03-27
  • 1970-01-01
相关资源
最近更新 更多