2015-04-21 67 views
3

我發現了一個相關question沒有滿意的回答,於是再次詢問這裏:授權的應用程序,沒有擊中瀏覽器代碼級[看門]

我使用Doorkeeper GEM爲我的應用程序的API調用。我已按照oauth2寶石文檔的步驟:

require 'oauth2' 
client = OAuth2::Client.new('client_id', 'client_secret', :site => 'https://example.org') 

client.auth_code.authorize_url(:redirect_uri => 'http://localhost:8080/oauth2/callback') 

正如我們所看到的最後一行執行給出一個URL在瀏覽器中使用,並點擊「授權」後得到授權碼

但是,我想要做的所有這些在Rails的模型層,這樣我就不必命中授權碼瀏覽器,它應該得到的內部,我可以在以後使用的令牌生成的代碼。

可能嗎?

+0

在正常的OAuth流程中,您將用戶重定向到OAuth提供商的網站進行登錄。成功登錄用戶後,將用您交換訪問令牌的代碼重定向回您的應用程序。您是否設置了門衛以使用不同的OAuth2方法提供訪問令牌? – philnash

+0

@philnash現在我已經將我的方法從** auth_code **更改爲**隱式**,但如果未登錄,它仍會將我重定向到登錄頁面。我想通過將用戶憑據直接傳遞到內部來創建用戶會話獲取令牌 – Abhi

回答

4

聽起來好像你想爲OAuth2使用資源所有者密碼憑證流。最好描述如何使用門衛和OAuth2創業板in the Doorkeeper wiki進行設置。

+1

謝謝但使用此方法會拋出** OAuth2 ::錯誤:invalid_grant:提供的授權許可無效,已過期,已撤銷,與授權請求中使用的重定向URI不匹配,或者已發佈給其他客戶端。 ** – Abhi

+0

反正它已經修復了。謝謝 – Abhi

+0

很酷,問題是什麼? – philnash

相關問題