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

vue項(xiàng)目中js-cookie的使用存儲(chǔ)token操作

 更新時(shí)間:2020年11月13日 15:35:53   作者:情非得已小猿猿  
這篇文章主要介紹了vue項(xiàng)目中js-cookie的使用存儲(chǔ)token操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

1、安裝js-cookie

# npm install js-cookie --save

# yarn add js-cookie

2、引用(需要的文件)

import Cookies from 'js-cookie' 
const TokenKey = 'Admin-Token' 
export function getToken() {
 return Cookies.get(TokenKey)
}
 
export function setToken(tcuncuoken) {
 return Cookies.set(TokenKey, token)
}
 
export function removeToken() {
 return Cookies.remove(TokenKey)
}

3、瀏覽器cookie

4、 也可以存儲(chǔ)其他

const user = {
 name: 'lia',
 age: 18
}
Cookies.set('user', user)
const liaUser = JSON.parse(Cookies.get('user'))

補(bǔ)充知識(shí):vue 實(shí)現(xiàn)記住密碼功能,用戶信息在客戶端加密存儲(chǔ)

效果圖:

功能詳解:用戶登錄時(shí),勾選記住密碼,系統(tǒng)會(huì)將登錄信息存入瀏覽器cookie中,下次登錄時(shí)系統(tǒng)會(huì)自動(dòng)將信息回寫在輸入框中(默認(rèn)設(shè)置保存時(shí)間為3天,此處需要將密碼進(jìn)行加密處理,以提高安全性)

1.定義頁(yè)面元素,v-model綁定變量

2.

3.引入vue的加密組件 CryptoJS,執(zhí)行這條命令,系統(tǒng)會(huì)自動(dòng)安裝

npm install crypto-js

安裝成功后,還需在登錄頁(yè)面引入組件

4.定義操作cookie的三個(gè)方法,后面需要用到,代碼我貼出來(lái)

 /************* Cookie start ***************/
   clearCookie(cookieName) {
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval = this.getCookie(cookieName);
    if (cval != null) {
     document.cookie = cookieName + "=" + cval + ";expires=" + exp.toGMTString();
    }
   },
 
   setCookie(cookieName, value, expiremMinutes) {
    var exdate = new Date();
    exdate.setTime(exdate.getTime() + expiremMinutes * 60 * 1000);
    document.cookie = cookieName + "=" + escape(value) + ((expiremMinutes == null) ? "" : ";expires=" + exdate.toGMTString());
   },
 
   getCookie(cookieName) {
    if (document.cookie.length > 0) {
     var c_start = document.cookie.indexOf(cookieName + "=");
     if (c_start != -1) {
      c_start = c_start + cookieName.length + 1;
      var c_end = document.cookie.indexOf(";", c_start);
      if (c_end == -1)
       c_end = document.cookie.length
      return unescape(document.cookie.substring(c_start, c_end))
     }
    }
    return ""
   },
   /*************Cookie end***************/

5.在登錄方法中判斷記住密碼是否有被勾選,如果有,則需要將賬號(hào)密碼信息存入cookie中,沒(méi)有,則調(diào)用上面的方法清除cookie信息,關(guān)鍵步驟我已標(biāo)記,登錄方法在下面:

/************* 登錄 start ***************/
   signIn() {
    let _this = this;
    //判斷是密碼登錄還是短信登錄
    if (_this.indexd == 0) {
     _this.$refs['ruleForm'].validate((valid) => {
      if (valid) {
 
       //定義要存入cookie的對(duì)象
       var accountInfo = ""; 
       //拿到輸入框中的密碼,使用AES加密
       var pwd = _this.form.pwd;
       var newPwd = CryptoJS.AES.encrypt(pwd,'secret key 123'); 
 
       //若勾選記住密碼
       if (_this.checked == true) {
        console.log("選擇記住密碼,checked == true");
        accountInfo = _this.form.name + "&" + newPwd; //將加密后的密碼存入cookie對(duì)象中
        _this.setCookie('accountInfo',accountInfo,1440*3); //傳入賬號(hào)名,密碼,和保存天數(shù)3個(gè)參數(shù)(3天)
       }else {
        console.log("清空Cookie");
        _this.clearCookie('accountInfo'); //清空Cookie
       }
 
 
       let params = {
        "username": _this.form.name,
        "password": _this.form.pwd,
        "vCode": _this.form.imgCode,
        "loginToken": _this.loginToken,
       };
       post('/login/login', params).then(function (response) {
        if (response.data.code == "20000") {
         sessionStorage.setItem("v-token", response.data.data.token);
         sessionStorage.setItem("v-menu", JSON.stringify(response.data.data.routers));
         sessionStorage.setItem("v-user", JSON.stringify(response.data.data.currentUser));
         //_this.makeRouters(response.data.data.routers);
         _this.$message({
          message: '登錄成功',
          type: 'success'
         });
         _this.clearCookie("login_token");//清除token
         //平臺(tái)
         if (response.data.data.currentUser.type == 0) {
          //平臺(tái)
          _this.$router.push('/index');
         } else if (response.data.data.currentUser.type == 1 || response.data.data.currentUser.type == 3 || response.data.data.currentUser.type == 2) {
          //渠道商
          _this.$router.push('/operate');
         } else {
          //證券商
          _this.$router.push('/AoInformationManagement')
         }
 
        } else if (response.data.code == "50000") {
         _this.$message.warning(response.data.msg);
         _this.changeCode();
        }
       }).catch(function (err) {
        _this.$message.error(err);
        _this.changeCode();
       })
      }
     });
    } 
   }

5.選擇記住密碼,登錄系統(tǒng)后,可以在調(diào)試模式中查看cookie信息,如圖:

6.退出系統(tǒng)后,需要判斷cookie有無(wú)賬號(hào)信息,如果有,則進(jìn)行回寫,下面是我的方法:

在鉤子方法中調(diào)用下面的loadAccountInfo回寫方法

//預(yù)讀取cookie中用戶信息
   loadAccountInfo(){
    let self = this;
    //admin%26U2FsdGVkX1+/ZtAGWFVi37gNwA7TUZmQM+yazInCPxs%3D
    let accountInfo = self.getCookie('accountInfo');
 
    //如果cookie里沒(méi)有賬號(hào)信息
    if(Boolean(accountInfo) == false){
     console.log('cookie中沒(méi)有檢測(cè)到用戶賬號(hào)信息!');
     return false;
    } else{
     //如果cookie里有賬號(hào)信息
     console.log('cookie中檢測(cè)到賬號(hào)信息!現(xiàn)在開(kāi)始預(yù)填寫!');
     let userName = "";
     let passWord = "";
     let index = accountInfo.indexOf("&");
 
     userName = accountInfo.substring(0,index);
     passWord = accountInfo.substring(index+1);  //拿到加密后的密碼
     //解密
     var bytes = CryptoJS.AES.decrypt(passWord.toString(),'secret key 123');
     //拿到解密后的密碼(登錄時(shí)輸入的密碼)
     var newpassWord = bytes.toString(CryptoJS.enc.Utf8);
 
     self.form.name = userName;
     self.form.pwd = newpassWord;
     self.checked = true;
    }
   },

7.最后效果就是這樣

以上這篇vue項(xiàng)目中js-cookie的使用存儲(chǔ)token操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Ant Design Pro 之 ProTable使用操作

    Ant Design Pro 之 ProTable使用操作

    這篇文章主要介紹了Ant Design Pro 之 ProTable使用操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • Vue+elementUI實(shí)現(xiàn)多圖片上傳與回顯功能(含回顯后繼續(xù)上傳或刪除)

    Vue+elementUI實(shí)現(xiàn)多圖片上傳與回顯功能(含回顯后繼續(xù)上傳或刪除)

    這篇文章主要介紹了Vue+elementUI實(shí)現(xiàn)多圖片上傳與回顯功能(含回顯后繼續(xù)上傳或刪除),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 基于Vue實(shí)現(xiàn)視頻打碼功能

    基于Vue實(shí)現(xiàn)視頻打碼功能

    在當(dāng)今數(shù)字化時(shí)代,視頻內(nèi)容的傳播變得極為普遍,然而,出于隱私保護(hù)等需求,我們常常需要對(duì)視頻中的人臉進(jìn)行打碼處理,所以本文將詳細(xì)介紹如何使用?face-api.js?庫(kù)來(lái)實(shí)現(xiàn)視頻人臉打碼的功能,需要的朋友可以參考下
    2025-04-04
  • vue導(dǎo)出excel多層表頭的實(shí)現(xiàn)方案詳解

    vue導(dǎo)出excel多層表頭的實(shí)現(xiàn)方案詳解

    這篇文章主要為大家詳細(xì)介紹了vue導(dǎo)出excel多層表頭的實(shí)現(xiàn)方案,文中的示例代碼簡(jiǎn)潔易懂,具有一定的借鑒價(jià)值,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04
  • Vue自定義省市區(qū)三級(jí)聯(lián)動(dòng)

    Vue自定義省市區(qū)三級(jí)聯(lián)動(dòng)

    這篇文章主要為大家詳細(xì)介紹了Vue自定義省市區(qū)三級(jí)聯(lián)動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vue基礎(chǔ)ESLint?Prettier配置教程詳解

    vue基礎(chǔ)ESLint?Prettier配置教程詳解

    這篇文章主要介紹了vue基礎(chǔ)ESLint?Prettier配置教程詳解,本文使用VsCode?+?Vue?+?ESLint?+?Prettier?實(shí)現(xiàn)代碼格式規(guī)范?+?保存自動(dòng)修復(fù)代碼js+vue
    2022-07-07
  • 如何解決Element UI el-dialog打開(kāi)一次后無(wú)法再次打開(kāi)問(wèn)題

    如何解決Element UI el-dialog打開(kāi)一次后無(wú)法再次打開(kāi)問(wèn)題

    這篇文章主要介紹了如何解決Element UI el-dialog打開(kāi)一次后無(wú)法再次打開(kāi)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • vuex 解決報(bào)錯(cuò)this.$store.commit is not a function的方法

    vuex 解決報(bào)錯(cuò)this.$store.commit is not a function的方法

    這篇文章主要介紹了vuex 解決報(bào)錯(cuò)this.$store.commit is not a function的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 解決vuex數(shù)據(jù)頁(yè)面刷新后初始化操作

    解決vuex數(shù)據(jù)頁(yè)面刷新后初始化操作

    這篇文章主要介紹了解決vuex數(shù)據(jù)頁(yè)面刷新后初始化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • Vue3中集成高德地圖并實(shí)現(xiàn)平移縮放功能

    Vue3中集成高德地圖并實(shí)現(xiàn)平移縮放功能

    隨著前端技術(shù)的不斷發(fā)展,地圖應(yīng)用在我們的項(xiàng)目中越來(lái)越常見(jiàn),本文將介紹如何在Vue3項(xiàng)目中集成高德地圖,并通過(guò)簡(jiǎn)單的配置實(shí)現(xiàn)地圖的平移和縮放功能,需要的朋友可以參考下
    2024-09-09

最新評(píng)論

濮阳县| 沂水县| 达孜县| 扶沟县| 日照市| 英山县| 洛扎县| 弥渡县| 东乡族自治县| 苍梧县| 乡城县| 香格里拉县| 隆回县| 和静县| 麟游县| 微博| 茌平县| 轮台县| 祥云县| 恩平市| 平潭县| 咸丰县| 舒城县| 英吉沙县| 南昌县| 秀山| 社会| 黑龙江省| 郎溪县| 久治县| 益阳市| 杭锦旗| 贵港市| 凉城县| 仪陇县| 襄樊市| 永顺县| 竹溪县| 阳谷县| 安龙县| 鄂托克前旗|