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