當前位置: 妍妍網 > 碼農

ASP.NET Core API 重新整理 access token

2024-02-26碼農

我們上節講了關於JWT Token,這節我們講解一下refresh token,什麽是refresh token,為什麽需要refresh token?上節我們知道token是用來表示身份的唯一標識,在這裏我們把它稱為 access token 出於安全性我們一般將 access token 過期時間設定的時間比較短同時不讓使用者過於頻繁的登入,這時我們就用到refresh token, refresh token是用來重新獲取使用者 access token 的一個秘鑰, refresh token設定的過期時間會比較長,它的職責只是用來生成一個新的a ccess token

我們在上一節計畫上增加一個refresh-token的方法:

我們在生成token的同時為使用者生成一個refresh-token,refresh-token用一個64位元的隨機數來表示,並賦值給當前使用者

同時我們也修改一下login的登入方法,當使用者登入的時候生成token的同時也生成一個refresh-token

access token(存取令牌):

用途:access token 用於存取受保護的資源,比如 API、伺服器端數據等

生命周期:通常較短,access token 過期後需要重新獲取,以繼續存取受保護的資源

refresh token(重新整理令牌):

用途:refresh token 用於獲取新的 access token,當 access token 過期時,客戶端可以使用 refresh token 來獲取新的 access token ,而無需使用者重新進行身份驗證

生命周期:通常較長,可以是幾天到幾個月,甚至更長, refresh token 在有效期內可以用來獲取多個 access token,但是一旦 refresh token 過期或被撤銷,客戶端就需要使用者重新進行身份驗證來獲取新的 refresh token

access token 用於實際的資源存取,而 refresh token 用於在 access token 過期時獲取新的 access token ,從而實作持續的存取, refresh token 的生命周期通常比 access token

原始碼地址:

https://github.com/bingbing-gui/Asp.Net-Core-Skill/tree/master/Fundamentals/AspNetCore.API.Auth/AspNetCore.API.JWT.Authentication