У меня проблемы с подключением нескольких точек с OAuth и Active Resource.Вот что я знаю: Документация Active Resource говорит мне, что я могу установить токены аутентификации для самой модели ActiveResource следующим образом:
ActiveResource::Base.connection.auth_type = :bearer
ActiveResource::Base.connection.bearer_token = @bearer_token
class Estimate < ActiveResource::Base
self.connection.auth_type = :bearer
self.connection.bearer_token = @bearer_token
self.site = "https://apistaging.uship.com/v2/estimate"
end
Кроме того, в полностью отдельной части моего кода я могу получитьМне нужен токен на предъявителя со следующими основными HTTP-запросами (без указания моего действительного идентификатора клиента и секрета для обеспечения конфиденциальности):
uri = URI('https://apistaging.uship.com/oauth/token')
res = Net::HTTP.post_form(uri, 'grant_type' => 'client_credentials', 'client_id' => 'XXXXXXXXXXXXXXXXXXX', 'client_secret' => 'YYYYYYY')
Когда я печатаю res
, он дает мне действительный токен, который я проверил,Это выглядит так:
{
"access_token": "AAAAAAAAAAAAAAAAAAAAA",
"token_type": "bearer",
"expires_in": 600,
"refresh_token": "BBBBBBBBBBBBBBBBBBBBB"
}
Но где мне запустить этот вызов?Я предполагаю, может быть какой-то before_filter на любых контроллерах, которые будут использовать Active Resource?И если так, как передать access_token этой переменной @bearer_token в моей модели ActiveResource.Кроме того, я знаю, что срок действия этого токена истекает через 10 минут, поэтому каким-то образом этот код должен будет знать, как снова запустить токен oauth, в нужное время или передать токены обновления, когда Active Resource используется менее чем за 10 минут.интервалы.Я очень удивлен, что не могу найти простой учебник для этого онлайн.Если кто-то считает, что я должен использовать драгоценный камень для автоматизации этого, дайте мне знать, какой именно, потому что все, что я нашел, не работает на рельсах 5.