2

我試圖實現Spring OAuth。我是新手,我試圖理解它是如何工作的。Spring Oauth令牌存儲機制

我的問題:

  1. OAuth認證後,生成令牌此標記必須用於每個用戶發出請求。我們需要將此access_token附加到每個REST API調用以訪問資源。我聽起來正確嗎?
  2. 我們是否需要在客戶端(使用cookie)存儲此令牌?或者無論如何,這樣我們就不需要在客戶端存儲這個令牌,並且可以在服務器端處理呢?
  3. 如果我們必須在客戶端存儲令牌,那麼最好的方法是什麼?我曾經使用過此link

回答

0
  1. 不見了如果您的服務器上的終結點OAuth的保護,那麼,你必須通過每個請求令牌 - 可能是在「授權:承載{}令牌」頭。在春天它解決了通過使用不同的restTemplate - OAuth2RestTemplate,它會自動獲取並添加請求。
  2. 您只需將JSESSIONID存儲在cookie中即可。然後從商店彈出讀取會話(安裝tomcat的光盤/ redis如果使用spring會話項目/ etc)
  3. 訪問令牌應該是相對較短的活件。還應該撤銷端點,以便在有理由相信它被入侵時可以使特定令牌無效。

3.a)在客戶端存儲一些數據存在另一個問題。它關於在移動本地應用上存儲clientId,clientSecret。 Android應用程序代碼可以很容易地進行反向設計,所以任何人都可以嘗試使用您的oauth應用程序來獲取令牌。在那些情況下,它的recomennded使用不同的授予類型「密碼」 - 檢查https://aaronparecki.com/2012/07/29/2/oauth2-simplified#other-app-types

+0

謝謝你的答案。你能給我更詳細的關於JSESSIONID如何實現它嗎?爲我提供任何鏈接。 – Anonymous

+0

它是Spring用來處理會話的默認cookie名稱。嘗試在你的彈簧控制器中存儲任何會話。那麼你應該在螢火蟲中看到這個cookie。 – freakman