在前幾天不同的授權方式的流程當中,可以看到 access token 和 refresh token 的出現。
Access token 顧名思義,就是能夠讓使用者或系統存取資源的通行證,然而這個通行證本身會有個有效期限,針對越重要或機密的資源,其有效期限就會越短,以降低 token 暴露的風險。
然而如果同一位使用者持續使用某個系統,每當 access token 過期,就需要重新走過一次驗證流程,從系統本身的使用者體驗角度來說,並不是一個理想的作法。因此,這時候就需要 refresh token 的協助。
Refresh Token 顧名思義,就是拿來「更新」的通行證。而這裡需要更新的東西,其實就是 access token。所以當 Client
發現 access token 快要過期或已過期時,就可以帶著 refresh token 向 Authorization server
重新索取 access token。如此一來,使用者體驗就不會一直被不斷出現的驗證流程給破壞。
Refresh token 本身也是有個有效期限,不過通常這個期限會比 access token 還要來得長,也因此 Client
可以在 access token 快要過期或已過期的時候使用 refresh token。
另一方面,refresh token 本身也可以實行 "rotation" 的機制,也就是每次使用 refresh token 拿到新的 access token 後,Authorization server
會換發 refresh token,以降低同樣的 refresh token 被他人取得使用,提升系統的安全性。