Вход oAuth2 в API для веб-приложения в ruby ​​on rails с помощью привратника с помощью devise

Я новичок в разработке API в Ruby On Rails. В приложении rails у меня есть разработка для аутентификации, и я также хочу использовать привратника для входа OAuth2 в API. Я не знаю, как мне реализовать Api и как использовать для этого привратника. Может ли кто-нибудь объяснить это шагами, которые мне нужно выполнить, чтобы реализовать это?


person Saritha Ks    schedule 02.02.2015    source источник


Ответы (1)


Для реализации API я лично предпочитаю использовать grape. Следуя ридми, вы сразу же начнете работать. :)

Вместо этого для интеграции винограда с привратником вы можете использовать wine_bouncer или grape-doorkeeper.

Теперь, в зависимости от того, кто использует ваш API, у Doorkeeper есть 4 разрешения на авторизацию, я настоятельно рекомендую вам прочитать различные типы грантов и их использование, вы можете прочитать это oauth2 упростил статью.

Чтобы заставить привратника играть вместе с devise, вам нужно изменить инициализатор привратника следующим образом:

Блок resource_owner_authenticator обычно вызывается, когда вы выполняете авторизацию или неявный запрос на предоставление:

resource_owner_authenticator do |routes|
  # Put your resource owner authentication logic here.
  # If you want to use named routes from your app you need
  # to call them on routes object eg.
  # routes.new_user_session_path
  current_user || warden.authenticate!(:scope => :user)
end

Вы можете просмотреть примеры приложений на вики-сайте Doorkeeper.

Вместо этого для предоставления пароля используется блок resource_owner_from_credentials, и, согласно вики, вы можете настроить его следующим образом:

resource_owner_from_credentials do |routes|
  request.params[:user] = {:email => request.params[:username], :password => request.params[:password]}
  request.env["devise.allow_params_authentication"] = true
  request.env["warden"].authenticate!(:scope => :user)
end

Некоторые ресурсы, которые могут вам помочь:

Надеюсь, поможет

person user980085    schedule 12.02.2015