vue中導入cookie和攜帶token


vue中cookie導入問題

前情提要:在實現修改密碼頁面時,后台未捕捉到token,原因是前端沒有將token從登錄頁面取出並傳送到后台,在csdn搜索了幾天並無解決方案,一是沒有修改密碼頁面的詳細傳token代碼,二是涉及到其他封裝axios的方法並不實用(實際說白了就是看不懂。)
后經同事指點,采用js-cookie攜帶token訪問后台的方法。

原鏈接:vue中使用js-cookie

      npm install js-cookie --save

使用:

      import Cookie from 'js-cookie'
      Cookie.set(‘token',token)
      Cookie.get('token')

該npm下載的方法對於我的電腦來說並不適用,先開始是npm版本太高,cmd提示顯示版本需要在【4,9】區間內,於是刪除了node.js重新安裝版本8.12.0,其間因為無法使用sudo命令,又重新導入sudo命令,方法如下:
在Windows中實現sudo命令——命令行環境中獲取管理員權限
一切准備就緒后,輸入npm指令,結果又出現無法解決的錯誤,百度很久找到的一個博客只有寥寥幾句並不詳細,於是放棄了這個方法,錯誤如下:

相關博客:
沒啥用
看了白看

無意中找到的方法,試了一下,結果有用。nice~
原鏈接:vue中全局導入js-cookie及使用
補充鏈接:js-cookie插件的安裝和使用

index.html中導入

·<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <!-- 網頁圖標 -->
    <link rel="icon" href="./static/img/favicon.ico" />
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>xxxxx</title>
  </head>
  <body>
    <div id="app"></div>
    <!-- 在這里導入 -->
    <script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>
  </body>
</html>

vue中cookie攜帶token問題

再解決完js-cookie導入后,前端運行報錯,未定義token,由此又csdn了幾天仍無結果,於是求救同事,幾下就解決了。
我的思路是,需要在request.js里定義token,但實際上,他是直接在修改密碼頁面和登錄頁面用let定義。

定義token

修改密碼頁面
    change(){
            this.$refs['ruleForm'].validate((valid) => {
                if (valid) {
                    let params = new URLSearchParams();
                    params.append("newPassword",this.ruleForm.newPassword);
                    params.append("password",this.ruleForm.password);
                    params.append("username",this.ruleForm.username);
           let token = localStorage.getItem("token")
           Cookie.set('token',token)
           Cookie.get('token')
request.post("/user/updatePassword",params).then(res => {
                        if (res.code == '200') {
                            this.$router.push('/login');  //登錄成功之后進行頁面的跳轉,跳轉到主頁
                            this.$message.success('修改成功!')

                        } else {
                            this.$message.error('修改失敗!')
                        }
                    })
                }
            })
        },

登錄頁面

  login() {

        this.$refs['ruleForm'].validate((valid) => {
            if (valid) {
                let params = new URLSearchParams();
                let username = this.ruleForm.username;
                params.append("username",this.ruleForm.username);
                params.append("password",this.ruleForm.password);
                request.post("/user/login",params).then(res => {
                    if (res.code == '200') {
                        localStorage.setItem("token", res.data)  // 緩存用戶信息
                        localStorage.setItem("ms_username", username)  // 緩存用戶信息
                        Cookie.set('token',res.data)
                        this.$router.push('/');  //登錄成功之后進行頁面的跳轉,跳轉到主頁
                        this.$message.success('登錄成功!')
                    } else {
                        this.$message.error('登錄失敗!')
                    }
                })
            }
        })

    }

后續:后台捕捉到的token仍為null,有可能是前端和后端存放token的地方不一致導致的,暫且記錄到這。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM