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


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



請求保護(hù)接口:
- 前端每次發(fā)起需要認(rèn)證的請求時,攜帶
access_token(通常放在 HTTP 請求頭中)。 - 后端驗(yàn)證
access_token,如果有效則返回數(shù)據(jù);如果無效,后端通過refresh_token獲取新的access_token。
刷新 Token:
- 當(dāng)
access_token過期時,前端使用refresh_token通過接口請求獲取新的access_token。 - 后端驗(yàn)證
refresh_token是否有效,如果有效則返回新的access_token。
四、總結(jié)
通過雙 Token 機(jī)制,可以有效提升應(yīng)用的安全性,同時保證用戶體驗(yàn)。
核心在于:
- Token 的獲取與存儲。
- 請求與響應(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 過期時刷新認(rèn)證。
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue使用Vue.extend創(chuàng)建全局toast組件實(shí)例
這篇文章主要介紹了vue使用Vue.extend創(chuàng)建全局toast組件實(shí)例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
vue開發(fā)之LogicFlow自定義業(yè)務(wù)節(jié)點(diǎn)
這篇文章主要為大家介紹了vue開發(fā)之LogicFlow自定義業(yè)務(wù)節(jié)點(diǎn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
前端實(shí)現(xiàn)不同角色登入展示不同頁面效果實(shí)例
要實(shí)現(xiàn)不同角色登錄跳轉(zhuǎn)不同的前端頁面,可以在登錄成功后,根據(jù)用戶的角色信息,使用路由跳轉(zhuǎn)到不同的頁面,這篇文章主要給大家介紹了關(guān)于前端實(shí)現(xiàn)不同角色登入展示不同頁面效果的相關(guān)資料,需要的朋友可以參考下2024-08-08
利用vue+elementUI設(shè)置省市縣三級聯(lián)動下拉列表框的詳細(xì)過程
在做電商項(xiàng)目的時候需要添加修改收貨地址,如何實(shí)現(xiàn)三級聯(lián)動選取省市區(qū)地址困擾了我不少時間,這篇文章主要給大家介紹了關(guān)于利用vue+elementUI設(shè)置省市縣三級聯(lián)動下拉列表框的相關(guān)資料,需要的朋友可以參考下2022-08-08
Vue項(xiàng)目webpack打包部署到Tomcat刷新報404錯誤問題的解決方案
今天很郁悶,遇到這樣一個奇葩問題,使用webpack打包vue后,將打包好的文件,發(fā)布到Tomcat上,訪問成功,但是刷新后頁面報404錯誤,折騰半天才解決好,下面小編把Vue項(xiàng)目webpack打包部署到Tomcat刷新報404錯誤問題的解決方案分享給大家,需要的朋友一起看看吧2018-05-05
一文詳解vue-router如何實(shí)現(xiàn)動態(tài)路由
在構(gòu)建基于Vue.js的單頁面應(yīng)用(SPA)時,Vue?Router是一個不可或缺的工具,本文將詳細(xì)介紹動態(tài)路由的概念與作用及其在Vue?Router中的具體實(shí)現(xiàn),需要的可以參考下2024-11-11
Vue如何在CSS中使用data定義的數(shù)據(jù)淺析
這篇文章主要給大家介紹了關(guān)于Vue如何在CSS中使用data定義的數(shù)據(jù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-05-05

