2012-09-03 126 views
2

我是oauth 2.0的新手,並閱讀它。我嘗試使用oauth 2.0爲我的37signals網站的應用程序,並遇到了一個問題。現在確定它是否按設計。任何這裏都是我所看到的。oauth 2.0再次顯示授權頁面

  1. 用戶已登錄到37signals網站。
  2. 我的應用程序通過重定向他37signals的網站
  3. 一個授權頁面出現,詢問用戶是否他是好的與授予我 訪問應用啓動的OAuth流。
  4. 用戶批准並返回到我的應用程序。 (訪問令牌 也可用)
  5. 現在,用戶從37signals站點註銷。
  6. 用戶嘗試使用我的應用程序。我的應用通過將他的 重定向到37signals站點來啓動oauth流程。
  7. 用戶使用登錄屏幕登錄。
  8. 他再次顯示授權頁面。 因爲 用戶第一次批准它,不應該跳過這個嗎?還是這樣設計的?

無論如何,這對我來說似乎不是很友好,即每次登出後都會顯示批准頁面。

我注意到與twitter類似的行爲。我最初在使用nodejs oauth庫時發佈了類似的問題。然後我認爲它是一個通用的oauth 2.0問題。 everyauth always triggers authorization

回答

0

初始認證時,認證提供者(本例中爲37Signals)將提供認證令牌。配合您的應用程序密鑰,您可以在初始身份驗證之後使用用戶令牌隨後對其進行身份驗證。習慣於OAuth提供者隨着時間推移過期認證令牌,在這種情況下,您需要讓用戶重新進行認證。

+1

我的問題是授權(批准頁面要求許可),而不是認證(登錄屏幕)。註銷後,我會再次顯示登錄屏幕(認證),然後顯示批准頁面(授權),雖然我早些時候批准了該應用程序。 – user1566788

+0

我想知道這是否與您正在使用的流程有關。 37Signals支持Web Server和User-Agent流程。你在使用哪一個?協議文檔(http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-1.4)的第1.4.1和1.4.2節分別描述了兩者。我正在閱讀,看看我能否確定你的問題。 – goatshepard

+0

感謝您的鏈接。我在做Web服務器流程。從twitter站點更多閱讀 - https://dev.twitter.com/docs/browser-sign-flow,它看起來像設計。從該鏈接 - 當用戶註銷時,「請注意,即使用戶已經授予對應用程序的訪問權限,權限列表仍將顯示。」 – user1566788