最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue3 axios配置以及cookie的使用方法實例演示

 更新時間:2023年02月18日 13:26:54   作者:Nanchen_42  
這篇文章主要介紹了Vue3 axios配置以及cookie的使用方法,需要的朋友可以參考下

調(diào)用驗證碼方法

在Request.js也就是axios中添加切換驗證碼方法

  // 請求后攔截
  instants.interceptors.response.use(
    (response) => {
      if (showLoading && loading) {
        loading.close();
      }
      const responseData = response.data;
      if (responseData.status == "error") {
        // 如果觸發(fā)了errorCallback函數(shù),那么就讓他切換驗證碼
        if (config.errorCallback) {
          config.errorCallback()
        }
        // 結(jié)尾
        return Promise.reject(responseData.info);
      } else {
        return responseData;
      }
    },
    (error) => {
      if (showLoading && loading) {
        loading.close();
      }
      return Promise.reject("網(wǎng)絡(luò)異常");
    }
  );

在Login.vue的請求接口中使用errorCallback方法
封裝的驗證碼地址寫法如下

const api={
  checkCode:'api/checkCode',
  login:"login"
}
const formDataRef = ref()
const fromData = reactive({});
// 切換驗證碼
const checkCodeUrl = ref(api.checkCode);
const changeCheckCode = ()=>{
  checkCodeUrl.value = api.checkCode + "?" +new Date().getTime();
}
const login = ()=>{
  // validate
  formDataRef.value.validate(async(valid)=>{
    if (!valid) {
      return;
    }
    let result = await proxy.Request({
      url:api.login,
      params:{
        account:fromData.account,
        // 這里需要通過md5進行加密
        password:md5(fromData.password),
        checkCode:fromData.checkCode
        // 觸發(fā)驗證碼錯誤時切換驗證碼
      },errorCallback:()=>{
        changeCheckCode()
      }
    })
    if (result) {
      return;
    }
  })
}

登錄有兩種驗證方案,可以使用token驗證或者用cookie驗證,這里說一下Cookie驗證

Cookie使用方法

安裝cookie

 npm i vue-cookies --save

登錄時可以不需要使用token去驗證,cookie里已存在,這個還是根據(jù)后端用token還是cookie驗證,自己寫的話可以設(shè)置cookie模式

引入cookie

import VueCookies from 'vue-cookies';

存貯cookie

    const loginInfo = {
      account :params.account,
      password:params.password,
    }
    console.log(loginInfo);
    // 永不過期
    /* 如果得點擊記住密碼之后那么就讓他的狀態(tài),也就是cookie值永不過期,直到他自己過期 */
   VueCookies.set("userInfo",result.data,0);
   /* 如果他點擊了記住我那么就讓他記錄七天 */
    if(fromData.rememberMe){
      VueCookies.set("loginInfo",loginInfo,'7d')
    }

最后得到cookie在頁面加載時顯示得到的賬號以及密碼

const init=()=>{
  const loginInfo= VueCookies.get('loginInfo');
  if (!loginInfo) {
    return
  }
  /* 轉(zhuǎn)成對象 */
  Object.assign(fromData,loginInfo)
}
init();

點擊登錄執(zhí)行的完整方法:

const login = () => {
  // 加載狀態(tài)
  loading.value = true;
  // elm自帶方法
  formDataRef.value.validate(async (valid) => {
    if (!valid) {
      loading.value = false;
      return;
    }
    // 得到賬號,密碼以及記住密碼
    let cookieLoginInfo = VueCookies.get("loginInfo");
    // cookie密碼為空的情況
    let cooliePassword =
      cookieLoginInfo == null ? null : cookieLoginInfo.password;
    // 如果輸入的密碼與cookie中存的密碼一致,那么就進行加密
    if (formData.password !== cooliePassword) {
      formData.password = md5(formData.password);
    }
    // 封裝一個對象用來包含輸入的狀態(tài),也就是賬號、密碼以及復(fù)選框
    let params = {
      account: formData.account,
      password: formData.password,
      checkCode: formData.checkCode,
    };
    // console.log(params);
    // result
    let result = await proxy.Request({
      url: api.login,
      params: params,
      errorCallback: () => {
        changeCheckCode();
      },
    });
    if (!result) {
      loading.value = false;
      formData.password = "";
      return;
    }
    // 成功后自動跳轉(zhuǎn)頁面
    setTimeout(() => {
      router.push("/");
      loading.value = false;
    }, 1500);
    
    const loginInfo = {
      account: params.account,
      password: params.password,
      rememberMe: formData.rememberMe,
    };
    console.log(loginInfo);
    // 永不過期
    VueCookies.set("userInfo", result.data, 0);
    console.log(formData.rememberMe);
    if (formData.rememberMe == 1) {
      VueCookies.set("loginInfo", loginInfo, "7d");
    }
  });
};

以上就是Vue3 axios配置以及cookie的使用方法的詳細內(nèi)容,更多關(guān)于Vue3 axios配置以及cookie的使用方法的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解@Vue/Cli 3 Invalid Host header 錯誤解決辦法

    詳解@Vue/Cli 3 Invalid Host header 錯誤解決辦法

    這篇文章主要介紹了詳解@Vue/Cli 3 Invalid Host header 錯誤解決辦法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Vue.js劃分組件的方法

    Vue.js劃分組件的方法

    這篇文章主要介紹了Vue.js劃分組件的方法,需要的朋友可以參考下
    2017-10-10
  • vue如何修改data中數(shù)據(jù)問題

    vue如何修改data中數(shù)據(jù)問題

    這篇文章主要介紹了vue如何修改data中數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue中實現(xiàn)checkbox回顯效果

    vue中實現(xiàn)checkbox回顯效果

    這篇文章主要介紹了vue中實現(xiàn)checkbox回顯效果,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Vue基礎(chǔ)語法知識梳理下篇

    Vue基礎(chǔ)語法知識梳理下篇

    這篇文章主要介紹了Vue基礎(chǔ)語法知識梳理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-12-12
  • 詳解如何在你的Vue項目配置vux

    詳解如何在你的Vue項目配置vux

    這篇文章主要介紹了詳解如何在你的Vue項目配置vux,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • 前端Vue中常用rules校驗規(guī)則(輪子)如電話身份證郵箱等校驗方法例子

    前端Vue中常用rules校驗規(guī)則(輪子)如電話身份證郵箱等校驗方法例子

    當我們在開發(fā)應(yīng)用時經(jīng)常需要對表單進行校驗,以確保用戶輸入的數(shù)據(jù)符合預(yù)期,這篇文章主要給大家介紹了關(guān)于前端Vue中常用rules校驗規(guī)則(輪子)如電話身份證郵箱等校驗方法的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • vue2.0移除或更改的一些東西(移除index key)

    vue2.0移除或更改的一些東西(移除index key)

    這篇文章主要介紹了vue2.0移除或更改的一些東西,vue2.0 移除了index和key,具體內(nèi)容詳情大家參考下本文
    2017-08-08
  • vue項目每30秒刷新1次接口的實現(xiàn)方法

    vue項目每30秒刷新1次接口的實現(xiàn)方法

    在vue.js項目中,經(jīng)常需要對數(shù)據(jù)實時更新——每隔xx秒需要刷新一次接口——即需要用到定時器相關(guān)原理。這篇文章主要介紹了vue項目每30秒刷新1次接口的實現(xiàn)方法,需要的朋友可以參考下
    2018-12-12
  • vue之如何實現(xiàn)打印功能

    vue之如何實現(xiàn)打印功能

    這篇文章主要介紹了vue之如何實現(xiàn)打印功能問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評論

米林县| 平和县| 万荣县| 香港| 乐平市| 齐齐哈尔市| 梁山县| 惠来县| 监利县| 襄汾县| 阳西县| 华安县| 合水县| 瓮安县| 北宁市| 民权县| 南宫市| 休宁县| 璧山县| 孟连| 柘城县| 仙桃市| 曲靖市| 凤山市| 泰和县| 连平县| 儋州市| 南溪县| 宣威市| 荥经县| 鹿泉市| 于都县| 夹江县| 中卫市| 葵青区| 稷山县| 璧山县| 安新县| 涡阳县| 万源市| 伊通|