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

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

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

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

在Request.js也就是axios中添加切換驗(yàn)證碼方法

  // 請(qǐng)求后攔截
  instants.interceptors.response.use(
    (response) => {
      if (showLoading && loading) {
        loading.close();
      }
      const responseData = response.data;
      if (responseData.status == "error") {
        // 如果觸發(fā)了errorCallback函數(shù),那么就讓他切換驗(yàn)證碼
        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的請(qǐng)求接口中使用errorCallback方法
封裝的驗(yàn)證碼地址寫法如下

const api={
  checkCode:'api/checkCode',
  login:"login"
}
const formDataRef = ref()
const fromData = reactive({});
// 切換驗(yàn)證碼
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進(jìn)行加密
        password:md5(fromData.password),
        checkCode:fromData.checkCode
        // 觸發(fā)驗(yàn)證碼錯(cuò)誤時(shí)切換驗(yàn)證碼
      },errorCallback:()=>{
        changeCheckCode()
      }
    })
    if (result) {
      return;
    }
  })
}

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

Cookie使用方法

安裝cookie

 npm i vue-cookies --save

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

引入cookie

import VueCookies from 'vue-cookies';

存貯cookie

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

最后得到cookie在頁面加載時(shí)顯示得到的賬號(hào)以及密碼

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

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

const login = () => {
  // 加載狀態(tài)
  loading.value = true;
  // elm自帶方法
  formDataRef.value.validate(async (valid) => {
    if (!valid) {
      loading.value = false;
      return;
    }
    // 得到賬號(hào),密碼以及記住密碼
    let cookieLoginInfo = VueCookies.get("loginInfo");
    // cookie密碼為空的情況
    let cooliePassword =
      cookieLoginInfo == null ? null : cookieLoginInfo.password;
    // 如果輸入的密碼與cookie中存的密碼一致,那么就進(jìn)行加密
    if (formData.password !== cooliePassword) {
      formData.password = md5(formData.password);
    }
    // 封裝一個(gè)對(duì)象用來包含輸入的狀態(tài),也就是賬號(hào)、密碼以及復(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;
    }
    // 成功后自動(dòng)跳轉(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的使用方法的詳細(xì)內(nèi)容,更多關(guān)于Vue3 axios配置以及cookie的使用方法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Vue按照順序?qū)崿F(xiàn)多級(jí)彈窗效果 附Demo

    Vue按照順序?qū)崿F(xiàn)多級(jí)彈窗效果 附Demo

    這篇文章主要介紹了Vue按照順序?qū)崿F(xiàn)多級(jí)彈窗效果 附Demo,通過實(shí)例代碼介紹了單個(gè)彈窗和多級(jí)彈窗的實(shí)現(xiàn)方法,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • 基于axios封裝fetch方法及調(diào)用實(shí)例

    基于axios封裝fetch方法及調(diào)用實(shí)例

    下面小編就為大家分享一篇基于axios封裝fetch方法及調(diào)用實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • vue-cli 介紹與安裝

    vue-cli 介紹與安裝

    這篇文章主要給大家介紹的是vue-cli 介紹與安裝,vue-cli是和vue進(jìn)行深度組合的工具,可以快速幫我們創(chuàng)建vue項(xiàng)目,并且把一些腳手架相關(guān)的代碼給我們創(chuàng)建好。真正使用vue開發(fā)項(xiàng)目,都是用vue-cli來創(chuàng)建項(xiàng)目的,下面文章詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-10-10
  • vue實(shí)力踩坑?當(dāng)前頁push當(dāng)前頁無效的解決

    vue實(shí)力踩坑?當(dāng)前頁push當(dāng)前頁無效的解決

    這篇文章主要介紹了vue實(shí)力踩坑?當(dāng)前頁push當(dāng)前頁無效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 關(guān)于Vue3路由push跳轉(zhuǎn)問題(解決Vue2this.$router.push失效)

    關(guān)于Vue3路由push跳轉(zhuǎn)問題(解決Vue2this.$router.push失效)

    這篇文章主要介紹了Vue3路由push跳轉(zhuǎn)問題(解決Vue2this.$router.push失效),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Vue-cli3生成的Vue項(xiàng)目加載Mxgraph方法示例

    Vue-cli3生成的Vue項(xiàng)目加載Mxgraph方法示例

    這篇文章主要介紹了Vue-cli3生成的Vue項(xiàng)目加載Mxgraph方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 淺談Vue.js之初始化el以及數(shù)據(jù)的綁定說明

    淺談Vue.js之初始化el以及數(shù)據(jù)的綁定說明

    今天小編就為大家分享一篇淺談Vue.js之初始化el以及數(shù)據(jù)的綁定說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Vue導(dǎo)出el-table表格為Excel文件的兩種方式

    Vue導(dǎo)出el-table表格為Excel文件的兩種方式

    在開發(fā)過程中,我們經(jīng)常需要將表格數(shù)據(jù)導(dǎo)出為 Excel 文件,大多數(shù)情況下,由后端處理即可,但是當(dāng)數(shù)據(jù)量不大、需要快速響應(yīng)用戶操作、或者數(shù)據(jù)已經(jīng)在前端進(jìn)行處理和展示時(shí),前端該如何實(shí)現(xiàn)呢,本文將介紹兩種方法,需要的朋友可以參考下
    2024-09-09
  • 詳解vue樣式穿透的幾種方式

    詳解vue樣式穿透的幾種方式

    本文主要介紹了vue樣式穿透的幾種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Vue2遞歸組件實(shí)現(xiàn)樹形菜單

    Vue2遞歸組件實(shí)現(xiàn)樹形菜單

    這篇文章主要為大家詳細(xì)介紹了Vue2遞歸組件實(shí)現(xiàn)樹形菜單的相關(guān)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04

最新評(píng)論