簡體   English   中英

在會話之間使用刷新令牌

[英]Using refresh tokens between sessions

我正在PHP Web應用程序中實現OAuth2。 有效期為1小時的訪問令牌將分發給javascript Web客戶端,並提供了刷新令牌。 如果客戶端在下一次導航到我的Web應用程序時退出瀏覽器超過1個小時,則在對資源服務器的初始請求期間,訪問令牌不再有效。 然后,資源服務器返回不受保護的頁面。

如果我有:

  1. 訪問令牌已過期
  2. 有效的刷新令牌
  3. 新會議

資源服務器是否應該返回不受保護的頁面,並且使用javascript的客戶端嘗試刷新訪問令牌,如果成功,則強制重新加載頁面? 那很常見嗎? 還是我錯過了一些東西,所以資源服務器沒有被調用兩次?

當前,客戶端將刷新令牌傳遞到資源服務器,因此從技術上講,資源服務器可以刷新訪問令牌。 但是,RFC 6749似乎不允許這樣做,這似乎表明資源服務器永遠都不會看到刷新令牌。

“刷新令牌必須在傳輸和存儲過程中保持機密,並且只能在授權服務器和向其頒發刷新令牌的客戶端之間共享。”

正如您所指出的,無論如何,永遠不會將刷新令牌傳遞到資源服務器。 刷新令牌僅提供給授權服務器。 但:

瀏覽器內客戶端(例如Javascript客戶端)應使用“隱式”授予來獲取其訪問令牌。 在這種情況下,不會發出刷新令牌。 瀏覽器內的客戶端應該不會有問題,因為在這種情況下用戶存在,因此不需要刷新令牌即可獲得新的訪問令牌:用戶將再次向授權服務器進行身份驗證,希望利用現有的SSO會話為了那個原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM