2016-03-04 43 views
3

Rails,Devise and Doorkeeper ...嘗試測試密碼授予和獲取錯誤:URI::InvalidURIError: query conflicts with opaque任何想法?門衛密碼授予URI :: 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我創建一個應用程序,給它一個隨機名稱和網站網址: 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搜索「在門衛中檢查密碼設計」的結果,而實際解決了我的問題的模塊是您在此處具有的'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://)。添加一個解決了我的問題!