【发布时间】: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