【问题标题】:Doorkeeper Authentication from Rails GraphQL来自 Rails GraphQL 的 Doorkeeper 身份验证
【发布时间】:2018-08-29 00:58:43
【问题描述】:

我正在尝试在 Rails (4.2.10) 应用程序中为 GraphQL 查询提供“登录”。正在传入“用户”和“密码”字段。在我的 mutation.rb 中,我有:

field :signin, !types.Boolean do
  argument :user, !types.String
  argument :password, !types.String
  resolve -> (_, args, _) {
     #what here?
  }
end

一些文档(过时?)建议:

Doorkeeper.authenticate args

这在我的测试中为我提供了一个“未定义的方法‘授权’”,我认为这意味着我在某处缺少回调。我已经挖掘了但无法弄清楚我需要什么。

我也试过

Doorkeeper::Application.by_uid_and_secret args.user, args.password

这似乎返回 nil。

【问题讨论】:

    标签: ruby-on-rails graphql doorkeeper


    【解决方案1】:

    您似乎正在尝试构建一个 signin 突变来获取 OAuth 凭据。这似乎是个坏主意。 OAuth 是一套完善的流程,API 客户端知道如何遵循这些流程。 OAuth 客户端凭据流程已经包含一种将凭据传递到 OAuth 服务器并取回访问令牌的方法。

    应该使用该访问令牌(例如,作为 Authorization 标头中值的一部分)来验证后续的 GraphQL API 调用。

    因此,不要实施替代 OAuth 流的突变,而是将 OAuth 实施添加到您的 API 使用者,并在 Doorkeeper 中启用客户端凭据流。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-01
      • 2020-10-22
      • 2018-04-15
      • 2011-02-21
      • 1970-01-01
      • 2020-09-19
      • 2019-02-02
      • 1970-01-01
      相关资源
      最近更新 更多