欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue2實現(xiàn)無感刷新token的方式詳解

 更新時間:2024年02月28日 09:40:40   作者:江城開朗的豌豆  
在Web應用中,用戶需要通過認證和授權才能訪問受保護的資源,為了實現(xiàn)認證和授權功能,通常需要使用Token來標識用戶身份并驗證其權限,本文給大家介紹了vue2實現(xiàn)無感刷新token的方式,需要的朋友可以參考下

引言:

在 Web 應用中,用戶需要通過認證和授權才能訪問受保護的資源。為了實現(xiàn)認證和授權功能,通常需要使用 Token 來標識用戶身份并驗證其權限。但是,Token 有時限制其有效期,以確保安全性。

當 Token 過期時,應用程序會返回一個 401(未授權)錯誤,提示用戶重新登錄或刷新頁面。這可能會影響用戶體驗和流程,并可能導致應用程序的性能問題。

因此,為了提高應用程序的用戶體驗和可靠性,通常會使用無感刷新 Token 的技術來自動刷新過期的 Token。這樣,即使 Token 過期,用戶也可以繼續(xù)使用應用程序而不會收到任何干擾。此外,無感刷新 Token 還可以提高應用程序的安全性和穩(wěn)定性,因為它可以有效地防止 Token 被惡意利用或攻擊。

需要注意的是,在實現(xiàn)無感刷新 Token 的過程中,需要注意保護用戶數(shù)據(jù)的安全性,并遵守相關的安全標準和法律法規(guī)。同時,還需要根據(jù)應用程序的需求和后端接口的設計來調(diào)整具體的實現(xiàn)方式。

安裝依賴

現(xiàn)在我們開始寫入vue2前端代碼

首先,確保已經(jīng)安裝了 Axios 和相關的依賴。

npm install axios

創(chuàng)建 Axios 實例并做請求封裝

在 src/utils/request.js 文件中創(chuàng)建一個 Axios 實例,并進行相關配置。

import axios from "axios";
 
const service = axios.create({
  baseURL:
    process.env.NODE_ENV !== "production"
      ? process.env.VUE_APP_BASE_API
      : process.env.VUE_APP_BASE_API_RUL,  
  timeout: 10000, // 超時時間
});
 
// request 攔截器
// 可以自請求發(fā)送前對請求做一些處理
// 比如統(tǒng)一加token,對請求參數(shù)統(tǒng)一加密
service.interceptors.request.use(
  (config) => {
    const token = window.localStorage.getItem("token");
    token && (config.headers.Authorization = token);
    config.headers["Content-Type"] = "application/json;charset=utf-8";
    config.headers["Authorization"] = "Bearer " + token; // 設置請求頭  
    return config;
  },
  (error) => {
    return Promise.reject("網(wǎng)絡異常,請稍后再試" + error);
  }
);
 
// response 攔截器
// 可以在接口響應后統(tǒng)一處理結果
service.interceptors.response.use(
  (response) => {
    if (response.data.code == 401) {
      let userInfo = {};
      userInfo.account =  process.env.VUE_APP_TOKEN.split(",")[0];
      userInfo.password =  process.env.VUE_APP_TOKEN.split(",")[1];
      // 這里需要調(diào)用登錄接口,重新獲取token
      return refreshToken(userInfo).then((newToken) => {
        // 更新本地存儲的 Token       
        localStorage.setItem("token", newToken);
        // 重新發(fā)送原請求
        return service(response.config);
      });
    }
 
    let res = response.data;
    // 兼容服務端返回的字符串數(shù)據(jù)
    if (typeof res === "string") {
      res = res ? JSON.parse(res) : res;
    }
    return res;
  },
  (error) => {
    return Promise.reject("網(wǎng)絡異常,請稍后再試" + error);
  }
);
function refreshToken(userInfo) {
  return new Promise((resolve, reject) => {
    // 調(diào)用登錄接口重新獲取 Token
    axios  
      .post(`${process.env.VUE_APP_BASE_API}/pc_admin/login`, {    
        ...userInfo,
      })
      .then((response) => {
        resolve(response.data.data.token);
      })
      .catch((error) => {
        reject(error);
      });
  });
}
 
export default service;

使用封裝的 Axios 實例

在需要發(fā)送請求的地方引入封裝的 Axios 實例,并使用它來發(fā)送請求。

//sever.js
import request from "./http";
// 測試接口
export function getListApi(params) {
    return request({
        url: "/pc_admin/article", 
        method: "get",
        params: params,
    });
}
 

寫在最后

通過上述代碼,在使用 Axios 發(fā)送請求時,會自動處理 Token 過期的情況,并進行無感刷新 Token。這樣可以提高應用程序的用戶體驗和安全性。

以上就是vue2實現(xiàn)無感刷新token的方式詳解的詳細內(nèi)容,更多關于vue2無感刷新token的資料請關注腳本之家其它相關文章!

相關文章

  • Vue利用插件實現(xiàn)打印功能的示例詳解

    Vue利用插件實現(xiàn)打印功能的示例詳解

    這篇文章主要為大家詳細介紹了Vue如何利用vue-print-nb插件實現(xiàn)打印功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學一下
    2023-03-03
  • Vue.js對象轉(zhuǎn)換實例

    Vue.js對象轉(zhuǎn)換實例

    這篇文章主要介紹了 Vue.js對象轉(zhuǎn)換的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-06-06
  • Vue自定義指令實現(xiàn)卡片翻轉(zhuǎn)功能

    Vue自定義指令實現(xiàn)卡片翻轉(zhuǎn)功能

    這篇文章主要給大家介紹了Vue自定義指令實現(xiàn)卡片翻轉(zhuǎn)功能的代碼示例,文章通過代碼示例講解的非常詳細,對大家的學習或工作有一定的參幫助,需要的朋友可以參考下
    2023-11-11
  • mapbox gl開箱即用的地圖引擎庫

    mapbox gl開箱即用的地圖引擎庫

    這篇文章主要為大家介紹了一款mapbox gl開箱即用的地圖引擎庫,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Vue3使用ref解決GetElementById為空的問題

    Vue3使用ref解決GetElementById為空的問題

    今天遇到一個問題,就是在Vue3組件中需要獲取template中的元素節(jié)點,使用GetElementById返回的卻是null,網(wǎng)上查找了好些資料,才發(fā)需要使用ref,所以本文給大家介紹了Vue3組件中如何使用ref解決GetElementById為空的問題,需要的朋友可以參考下
    2023-12-12
  • 優(yōu)雅的elementUI table單元格可編輯實現(xiàn)方法詳解

    優(yōu)雅的elementUI table單元格可編輯實現(xiàn)方法詳解

    這篇文章主要介紹了優(yōu)雅的elementUI table單元格可編輯實現(xiàn)方法詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • vue?table表格中如何控制下拉框的顯示隱藏

    vue?table表格中如何控制下拉框的顯示隱藏

    這篇文章主要介紹了vue?table表格中如何控制下拉框的顯示隱藏問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Vue之文件加載執(zhí)行全流程

    Vue之文件加載執(zhí)行全流程

    這篇文章主要介紹了Vue之文件加載執(zhí)行全流程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • ant design vue 表格table 默認勾選幾項的操作

    ant design vue 表格table 默認勾選幾項的操作

    這篇文章主要介紹了ant design vue 表格table 默認勾選幾項的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 詳解Vue2 添加對scss的支持

    詳解Vue2 添加對scss的支持

    這篇文章主要介紹了詳解Vue2 添加對scss的支持,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01

最新評論