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



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

