【问题标题】:Xero integration with Rails/Devise OmniauthableXero 与 Rails/Devise Omniauthable 的集成
【发布时间】:2019-06-07 09:40:26
【问题描述】:

我想使用 devise 的 omniauthable 来验证我的用户的会计凭证,以便利用 Xero 的 api。但是当我尝试使用这个 gem 进行授权时,我得到 400 Bad Request, Oauth::Unauthorized。 我已经在 Xero 的网站上注册了应用程序,并生成了 API 密钥(CONSUMER_KEY 和 CONSUMER_SECRET)。

以下是相关路线:

 scope module: :user do
        devise_for :accounting_credentials,
                   path: :accounting,
                   controllers: {
                     omniauth_callbacks: 'application/users/accounting_credentials/omniauth_callbacks'
                   }
    end

我的控制器

class Application::Users::AccountingCredentials::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def xero
    ...
  end

设计初始化器 config.omniauth :xero, ENV['CONSUMER_KEY'], ENV['CONSUMER_SECRET']

和模型

class AccountingCredential < ActiveRecord::Base
  devise :omniauthable, omniauth_providers: %i[xero]
  ...
end

我在 Application::Users::AccountingCredentials#xero 的开头有我的调试器来查看传入的信息。但我什至无法到达那里,因为我首先收到上述错误。我从来没有真正遇到过用户 Devise 和 Omniauth 的任何问题。我可以让我自己的客户使用 Xero 进行授权,但我认为这将是更清洁/更快的方法。

【问题讨论】:

    标签: ruby-on-rails devise omniauth


    【解决方案1】:

    这总是发生。我在搜索了几个小时后发布了一个问题,继续搜索答案,然后找到我需要的答案。 Xero 需要一个回调域,他们声称是可选的。它不是。我不得不使用 ngrok 来允许 Xero 需要的 https。然后将该 url 用于应用程序 url,然后使用回调中的域。就我而言,它是https://[number].ngrok.io 和回调域:[number].ngrok.io

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-06
      • 2021-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多