2016-03-04 2 views
3

Rails, Devise and Doorkeeper ... Попытка проверить пароль и получить ошибку: URI::InvalidURIError: query conflicts with opaque Любые идеи?Предоставление пароля для паролей Doorkeeper :: InvalidURIError: запрос конфликтует с непрозрачным

Обновление: Я создал второй рельсы приложение, которое было в состоянии получить маркер .. так что, может быть, кое-что о native_redirect_uri

Doorkeeper.configure do 
    orm :active_record 

    resource_owner_authenticator do 
     # current_user || warden.authenticate!(:scope => :user) 
    end 

    resource_owner_from_credentials do |routes| 
    user = User.find_for_database_authentication(email: params[:username]) 
    user if user && user.valid_password?(params[:password]) 
    end 


    reuse_access_token 

    use_refresh_token 

    native_redirect_uri 'urn:ietf:wg:oauth:2.0:oob' 

    grant_flows %w(password) 


    skip_authorization do |resource_owner, client| 
    true 
    end 

end 

Использование oauth2 создать приложение, дать ему случайное имя и для сайта URI: urn:ietf:wg:oauth:2.0:oob

Затем, используя учетные данные пользователя, я запустить эти команды:

client = OAuth2::Client.new('caa5ia541111698b34e66056e18b9afd6cb90c0d200d5dac99584da5a6b83b411', 'e45c78992a9eeb609b72cf5b56aea8dd999ec7dc9594a4211b8265f525a75870', :site => "urn:ietf:wg:oauth:2.0:oob") 
access_token = client.password.get_token('[email protected]', 'realpassword') 

Я примерно следующим данном примере here

+0

Это был не совсем тот самый вопрос, который у меня был, но это было результатом поиска google «check password devise in doorkeeper», и блок, который фактически решил мою проблему, - это блок «resource_owner_from_credentials», который у вас есть здесь. – twmulloy

+0

Рад это слышать @twmulloy, вы можете найти это приложение приложения полезной: https://github.com/rilian/devise-doorkeeper-cancan-api-example/tree/master/spec – swaincreates

ответ

0

Для чего это стоит кому-то, я думаю, что злоупотреблял «urn: ietf: wg: oauth: 2.0: oob». Я установил отдельное приложение rails в качестве клиента, и все работало, как ожидалось.

10

Я сам столкнулся с этой ошибкой и был очень смущен, так как это довольно загадочная ошибка concerning internals of the URI library. Моя проблема заключалась в том, что первая строка, с которой я соединялась, не указывала протокол (https:// или http://). Добавив, что я решил свою проблему!

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