我正在實施OAuth2.0 server
並試圖讀取concepts of refresh token
以及如何使用調用訪問令牌以及如何安全地存儲它。刷新令牌在OAuth2.0中的使用
一本這聽起來很困惑,我的是`因爲Auth2.0令牌短暫的令牌,並登錄後,假設成功的服務器給了我一個令牌,該令牌是這樣的:
{
"token_type":"bearer",
"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjoiVlx1MDAxNcKbwoNUwoonbFPCu8KhwrYiLCJpYXQiOjE0NDQyNjI1NDMsImV4cCI6MTQ0NDI2MjU2M30.MldruS1PvZaRZIJR4legQaauQ3_DYKxxP2rFnD37Ip4",
"expires_in":3600,
"refresh_token":"fdb8fdbecf1d03ce5e6125c067733c0d51de209c"
}
由於訪問令牌是短暫的令牌,並在我的情況下1小時後過期。
假設用戶是browsing a protected resource
及其access tokens
憑證,並在一段時間後其訪問令牌過期並且他的請求返回類似的響應。
{
"code":401,
"error":"invalid_token",
"error_description":"The access token provided has expired."
}
現在,一個新令牌可以通過使用存儲在瀏覽器cookie新refresh token
產生,but doesn't the user experience is getting affected as each time an access token expires in an hour a valid request by a client is getting rejected due to expired access token and then we have to first fetch a new access token and then try that request again.
是否獲取刷新令牌的工作方式類似,僅或者我丟失了一些重要的概念?
又如何能夠安全地刷新令牌在cookie中,因爲它也不是最安全的存儲方式?
這就是爲什麼大多數開發人員檢查expires_in和訪問令牌過期之前得到一個新的5分鐘。這樣用戶不受影響。通常,當我獲得訪問令牌時,我將3600添加到當前時間,然後存儲該令牌,並且我知道何時需要獲取新的訪問令牌。 – DaImTo
@DaImTo另外我怎樣才能安全地在瀏覽器上存儲'刷新令牌'? –
只是將其轉儲到cookie或會話值中,對任何沒有客戶端ID和客戶端祕密的用戶都無用,因此我會假定代碼保留在服務器端。 – DaImTo