Аутентифицировать виноградный API с привратником
В настоящее время я настроил Devise,Doorkeeper и виноград в своем приложении рельсов. Devise и Doorkeeper настроены таким образом, что я могу зарегистрироваться и войти в Devise на веб-сайте, а Doorkeeper предоставляет конечные точки oAuth, которые могут создавать токены.
Как я могу добавить токен в HttpRequest и защитить с его помощью API винограда?
Редактировать: Итак, я попытался реализовать реализацию Winebouncer, которую предложил Том Херт. Я следовал инструкциям на https://github.com/antek-drzewiecki/wine_bouncer
Я установил драгоценный камень. Я определил config/initializers/wine_bouncer.rb следующим образом.
WineBouncer.configure do |config|
config.auth_strategy = :default
config.define_resource_owner do
User.find(doorkeeper_access_token.resource_owner_id) if doorkeeper_access_token
end
end
Я зарегистрировал Winebouncer в качестве промежуточного ПО в винограде в моем базовом контроллере API. Приложение \ Контроллеры \ апи \ base.rb
module API
class Base < Grape::API
mount API::V1::Base
use ::WineBouncer::OAuth2
end
end
Я смонтировал контроллер проектов в приложении базового контроллера V1 \controllers\api\v1\base.rb
module API
module V1
class Base < Grape::API
mount API::V1::Projects
end
end
end
И это мое приложение projects controller \controllers\api\v1\projects.rb
module API
module V1
class Projects < Grape::API
version 'v1'
format :json
resource :projects do
desc "Return list of projects" , auth: { scopes: [] }
get do
Project.all
end
end
end
end
end
Честно говоря, я еще не знаю, как предполагается, что ", auth: { scopes: [] }" в описании. И как добавить токен в запрос, но я ожидаю, что мой запрос будет заблокирован, когда токен не будет добавлен. Но запрос все еще производит данные JSON.
2 ответа
Я нашел довольно интересный код здесь: https://github.com/fuCtor/grape-doorkeeper Кажется, он все еще поддерживается. Но я думаю, что это хорошо, просто чтобы понять, что там происходит.
Я бы порекомендовал это: https://github.com/antek-drzewiecki/wine_bouncer Как сказано на странице:
Защитите свой драгоценный виноградный API с Doorkeeper. WineBouncer использует минимальные модификации, чтобы волшебство произошло.
obedeijn, я только что заметил ваш вопрос по stackru. WineBouncer работает так же, как привратник, он ищет заголовок Authorizations с "Bearer x", где x - токен.