所以我正在嘗試儘可能地實現我正在構建的這個API的OAuth 2。我處於需要生成access_token的位置,但我正在試圖找出這樣做的最佳方法。我讀過一個人們正在加密revenant信息和access_token(如過期日期,客戶端ID等)的地方,以防止在每個API調用中查找數據庫。使用什麼來生成OAuth 2訪問令牌
我想到了這一點,並認爲,如何生成access_token句柄撤銷訪問?我的意思是使用OAuth的好處之一是能夠撤銷應用程序對數據的訪問權限,如果我只是在沒有在數據庫中查找的情況下使用加密數據,如果我撤消應用程序,它仍然有權訪問到我的數據,直到至少access_token過期。
我認爲更好的方式來防止在關係數據庫中查找也會將access_token存儲在鍵/值數據庫(如redis)中,因爲這樣會更快一些。這樣,如果有人撤銷對應用程序的訪問,它可以刪除關係數據庫中的記錄以及鍵/值數據中的記錄。
我思念的東西,有沒有使用加密數據到的access_token,防止數據庫查找每個API調用,並因爲能夠隨時撤銷訪問的方法嗎?
有趣。我想我仍然需要在數據庫中保留所有的令牌(仍然需要保留數據庫中的所有有效令牌,以便能夠撤銷它們),但將它們放在單獨的表中以加快查找速度會很好。 – ryanzec 2013-03-04 15:59:24
由於授權代碼和訪問令牌過期非常快(即幾分鐘內),因此您可能不需要撤銷它們。因此,您也可以選擇僅保留數據庫中的有效刷新標記列表,並在撤消時從列表中刪除。您仍然可以使用獨立代碼和不需要列出的訪問令牌節省大量數據庫空間和搜索成本。 – 2013-03-04 16:20:37