2015-10-29 3 views
1

Всякий раз, когда я пытаюсь проверить подлинность с провайдером привратник, я всегда получаю следующее сообщение об ошибкеOAuth2 :: Ошибка с привратником

invalid_grant: The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. {"error":"invalid_grant","error_description":"The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client."} 

Я попытался с другими клиентами привратник, но по-прежнему имеют одну и ту же ошибку

привратник клиента:

  1. https://github.com/doorkeeper-gem/doorkeeper-devise-client.git
  2. http://dev.mikamai.com/post/112508735689/oauth2-on-rails-the-client-application

поставщик Привратник:

https://github.com/doorkeeper-gem/doorkeeper-provider-app.git

ответ

0

Хотя понижение до gem 'omniauth-oauth2', '~> 1.3.1' является подтверждено, что решение , в Doorkeeper's Create-a-OmniAuth-strategy-for-your-provider Wiki Page упоминается, что в вашей реализации OmniAuth Strategy for Doorkeeper должен присутствовать следующий метод:

# https://github.com/intridea/omniauth-oauth2/issues/81 
    def callback_url 
    full_host + script_name + callback_path 
    end 

Существует долгая дискуссия в упомянутой omniauth-oauth2 issue #81

Я лично сталкивался заявленной ошибкой, когда я пытаюсь проверить мой Rails 5 Разрабатывают на основе привратника поставщика с помощью Rails 5 Разрабатывают на основе клиента app, чтобы пользователи провайдера могли подключать свою учетную запись к моему клиенту-приложению.

При отсутствии указанного метода в моих OmniAuth::Strategies::Doorkeeper на передний конец DEViSE OmniauthCallbacksController был мигающее сообщение недействительных полномочий и в серверных журналов клиент-приложений следующих ошибок был замечен:

Started GET "https://stackoverflow.com/users/auth/doorkeeper" for 127.0.0.1 at 2017-08-22 17:45:02 +0530 
    I, [2017-08-22T17:45:02.386866 #14535] INFO -- omniauth: (doorkeeper) Request phase initiated. 
    Started GET "https://stackoverflow.com/users/auth/doorkeeper/callback?code=1b833bcc09651f98b0424a7afb1e60bd50fdcc765daf7d499bcefb5554457187&state=c215fd707ecd71c6ad0f6b5e58fa0d2da7210d86946d41e3" for 127.0.0.1 at 2017-08-22 17:45:03 +0530 
    I, [2017-08-22T17:45:03.506424 #14535] INFO -- omniauth: (doorkeeper) Callback phase initiated. 
    E, [2017-08-22T17:45:03.523737 #14535] ERROR -- omniauth: (doorkeeper) Authentication failure! invalid_credentials: OAuth2::Error, invalid_grant: The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. 
    {"error":"invalid_grant","error_description":"The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client."} 
    Processing by Users::OmniauthCallbacksController#failure as HTML 
    Parameters: {"code"=>"1b833bcc09651f98b0424a7afb1e60bd50fdcc765daf7d499bcefb5554457187", "state"=>"c215fd707ecd71c6ad0f6b5e58fa0d2da7210d86946d41e3"} 
    Redirected to http://localhost:5000/ 
    Completed 302 Found in 0ms (ActiveRecord: 0.0ms) 

Так добавив, что метод стратегии можно рассматривать как альтернативное решение.

Спасибо.

Смежные вопросы