Vue3雙token加密登錄及注冊(cè)方式
一、核心思路
雙 Token 機(jī)制:
- Access Token:短期有效,用于請(qǐng)求 API。
- Refresh Token:長(zhǎng)期有效,用于刷新 Access Token。
認(rèn)證流程:
- 用戶登錄或注冊(cè)成功后,后端返回
access_token和refresh_token。 - 前端將 Token 安全存儲(chǔ)(如
localStorage或cookie)。 - 每次請(qǐng)求 API 時(shí),在請(qǐng)求頭中攜帶
access_token。 - 當(dāng)
access_token過(guò)期時(shí),使用refresh_token獲取新的access_token。 - 如果
refresh_token也過(guò)期,則強(qiáng)制用戶重新登錄。
二、實(shí)現(xiàn)步驟
登錄/注冊(cè):
- 用戶提交表單后,調(diào)用后端接口獲取
access_token和refresh_token。 - 將 Token 存儲(chǔ)到
localStorage或cookie中。
請(qǐng)求攔截:
- 使用 Axios 攔截器,在每次請(qǐng)求時(shí)自動(dòng)添加
access_token到請(qǐng)求頭。
響應(yīng)攔截:
- 攔截 401 錯(cuò)誤(Token 過(guò)期),嘗試使用
refresh_token刷新access_token。 - 如果刷新成功,更新
access_token并重試請(qǐng)求。 - 如果刷新失敗,清除 Token 并跳轉(zhuǎn)到登錄頁(yè)。
安全存儲(chǔ):
- 使用
localStorage或cookie存儲(chǔ) Token,確保數(shù)據(jù)安全。 - 可以考慮對(duì) Token 進(jìn)行加密存儲(chǔ)。
退出登錄:
- 清除存儲(chǔ)的 Token,并跳轉(zhuǎn)到登錄頁(yè)。
三、關(guān)鍵點(diǎn)
Token 刷新邏輯:
- 使用
refresh_token調(diào)用后端接口獲取新的access_token。 - 避免重復(fù)刷新(通過(guò)
_retry標(biāo)志位)。
安全性:
- 使用 HTTPS 加密傳輸。
- 避免將 Token 暴露在前端代碼中。
用戶體驗(yàn):
- 在 Token 過(guò)期時(shí)自動(dòng)刷新,減少用戶重新登錄的頻率。
Vue 3 雙 Token 加密登錄和注冊(cè)的基本邏輯流程如下:
注冊(cè):
- 用戶提交注冊(cè)信息(如用戶名、密碼)。
- 后端驗(yàn)證用戶信息合法性(如密碼強(qiáng)度、用戶名唯一性)。
- 后端生成一個(gè)加密的 Token(比如 JWT),并返回給前端。
- 前端保存 Token,通常會(huì)將其存儲(chǔ)在
localStorage或sessionStorage。


登錄:
- 用戶提交登錄信息(如用戶名、密碼)。
- 后端驗(yàn)證用戶憑證是否合法。
- 如果驗(yàn)證成功,后端返回兩個(gè) Token:一個(gè)用于身份驗(yàn)證的
access_token,另一個(gè)用于刷新身份的refresh_token。 - 前端保存
access_token和refresh_token。
access_token 用于 API 請(qǐng)求時(shí)攜帶。
refresh_token 用于刷新過(guò)期的 access_token。



請(qǐng)求保護(hù)接口:
- 前端每次發(fā)起需要認(rèn)證的請(qǐng)求時(shí),攜帶
access_token(通常放在 HTTP 請(qǐng)求頭中)。 - 后端驗(yàn)證
access_token,如果有效則返回?cái)?shù)據(jù);如果無(wú)效,后端通過(guò)refresh_token獲取新的access_token。
刷新 Token:
- 當(dāng)
access_token過(guò)期時(shí),前端使用refresh_token通過(guò)接口請(qǐng)求獲取新的access_token。 - 后端驗(yàn)證
refresh_token是否有效,如果有效則返回新的access_token。
四、總結(jié)
通過(guò)雙 Token 機(jī)制,可以有效提升應(yīng)用的安全性,同時(shí)保證用戶體驗(yàn)。
核心在于:
- Token 的獲取與存儲(chǔ)。
- 請(qǐng)求與響應(yīng)攔截器的實(shí)現(xiàn)。
- Token 刷新邏輯的處理。
這種機(jī)制適用于需要高安全性的應(yīng)用場(chǎng)景,如金融、電商等。
前端通過(guò)雙 Token(access_token 和 refresh_token)機(jī)制處理身份驗(yàn)證和授權(quán),access_token 用于訪問(wèn)保護(hù)接口,refresh_token 用于在 access_token 過(guò)期時(shí)刷新認(rèn)證。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue 項(xiàng)目全屏插件screenfull使用案例
這篇文章主要介紹了vue 項(xiàng)目全屏插件screenfull使用案例,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-12-12
Vue?export?default中的name屬性有哪些作用
這篇文章主要介紹了Vue?export?default中的name屬性有哪些作用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
vue+element-ui集成隨機(jī)驗(yàn)證碼+用戶名+密碼的form表單驗(yàn)證功能
在登入頁(yè)面,我們往往需要通過(guò)輸入驗(yàn)證碼才能進(jìn)行登入,那我們下面就詳講一下在vue項(xiàng)目中如何配合element-ui實(shí)現(xiàn)這個(gè)功能,需要的朋友可以參考下2018-08-08
Vue3 Element Plus表單自定義校驗(yàn)的實(shí)現(xiàn)全過(guò)程
這篇文章主要介紹了Vue3 Element Plus表單自定義校驗(yàn)的實(shí)現(xiàn)全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
詳解Vue ElementUI手動(dòng)上傳excel文件到服務(wù)器
這篇文章主要介紹了詳解Vue ElementUI手動(dòng)上傳excel文件到服務(wù)器,對(duì)ElementUI感興趣的同學(xué),可以參考下2021-05-05
Vue設(shè)置長(zhǎng)時(shí)間未操作登錄自動(dòng)到期返回登錄頁(yè)
這篇文章主要介紹了Vue設(shè)置長(zhǎng)時(shí)間未操作登錄以后自動(dòng)到期返回登錄頁(yè),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-01-01

