我目前正在爲我的RESTful API實現OAuth 2.0體系結構。使用Redis檢查訪問令牌的每個請求
對於每個請求,我都在HTTP標頭中爲所有客戶端設置授權承載令牌,以製作授權請求。
Authorization: Bearer sdflksd3r4823vkn95-03850432
據我所知,通常只在API中接受令牌直到過期日期。但是,如果用戶想要令牌撤銷,我需要採用一種方法來檢查每個請求的令牌狀態。
所以我要去數據庫來檢查每個HTTP請求思考。我有一種感覺,由於性能原因,這不會很好地擴展。
所以我想知道是否像Redis這樣的解決方案適合於訪問令牌狀態的快速單一讀取?
我絕對考慮一個布隆過濾器。雖然我也想知道它是否使用單例緩存是一個可行的選項 – 2013-04-27 01:45:08
如果你只有一臺服務器,那麼你有更多的選擇,因爲你只需要在一個地方維護狀態。像Redis這樣的外部服務器維護狀態允許您擁有多個API服務器。單身人士只適用於你有一臺服務器的情況。另一種選擇是分佈式地圖(連貫,Hazelcast等)。如果令牌的到期時間相對較短,那麼您也可以在分佈式映射到期時從分佈式映射中刪除,以減小它的大小。 – sehrope 2013-04-27 01:49:22
優秀的答案。非常感謝! – 2013-04-27 01:57:19