有时候做登录时会有一个记住密码的需求,这个时候可以使用cookies把账号密码存起来,下次再进来就免去了输入账号密码的需求,如图:

原生cookies操作比较麻烦,这里我们使用js-cookies,先下载:

npm install --save js-cookie

安装成功后在需要的地方进行调用:

  import Cookies from "js-cookie";

 先看看在data中定义的表单数据:

  data() {
      return {
        //登录表单
        loginForm: {
          username: "", //用户名
          password: "", //密码
          captcha: "", //验证码的值
          isRemember: false, //是否记住密码
        },
      }
    },

写在methods中的函数:

 created() {
      //一进页面就先获取cookies里面的参数
      this.getCookie()
    },
    methods: {
      // 获取cookie参数
      getCookie() {
        const username = Cookies.get("username");
        const password = Cookies.get("password");
        const isRemember = Cookies.get("isRemember");
        this.loginForm.username =
          username == undefined ? this.loginForm.username : username;
        this.loginForm.password =
          password == undefined ? this.loginForm.password : decrypt(password);
        this.loginForm.isRemember =
          isRemember == undefined ? false : Boolean(isRemember);
        Cookies.remove('data');
      },
    },
    onLogin() {
      //点击登录函数时,如果勾选记住密码
      if (this.loginForm.isRemember) {
        // 把账号密码等参数存到cookies,设置时间为30天
        Cookies.set("username", this.loginForm.username, {
          expires: 30,
        });
        Cookies.set("password", this.loginForm.password, {
          expires: 30,
        });
        Cookies.set("isRemember", this.loginForm.isRemember, {
          expires: 30,
        });
      } else {
        //如果此时没有勾选记住密码,就把cookies里面的参数移除
        Cookies.remove("username");
        Cookies.remove("password");
        Cookies.remove("isRemember");
      }
      //把登录名和用户名存好后,开始发接口请求数据,此处省略....
    },

cookies的使用方式: 储存、获取、删除三种

存:

Cookies.set('userName', '嘻嘻嘻', { expires: 3 });

取:

JSON.parse(Cookies.get('userName'))

删:

Cookies.remove('userName')

大功告成,完结!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐