Я хочу использовать omniuthable devise для аутентификации учетных данных моего пользователя, чтобы использовать API Xero. Но когда я пытаюсь авторизоваться с помощью этого самоцвета, я получаю 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, но подумал, что это будет более простой и быстрый способ.