Настройка ActiveResource для поддержки OAuth2

Мне нужно, чтобы я мог настроить ActiveResource для соединения с OAuth2 или базовой аутентификацией для каждого отдельного соединения. Я нашел несколько способов настроить ActiveResource с OAuth2, но они не кажутся такими элегантными и не поддаются настройке динамического типа. Любая помощь там?

1 ответ

Решение

Я понял, как это сделать, если мои классы ActiveResource наследуются от промежуточного класса:

  class Resource < ActiveResource::Base
  end

  class MyClass < Resource
  end

Это позволяет динамически устанавливать аутентификацию (а также сайт, формат и т. Д.) Для всех классов, которые наследуются от промежуточного класса Resource:

если у пользователя настроен OAuth2:

   Resource.headers['authorization'] = 'Bearer ' + my_oauth2_token

или если пользователь просто использует базовую аутентификацию:

   Resource.user = my_user_name
   Resource.password = my_password

Надеюсь, это поможет кому-то!

Другие вопросы по тегам