其他分享
首页 > 其他分享> > 实现二级域名共享cookie,在两个网页存储和获取cookie里面的值

实现二级域名共享cookie,在两个网页存储和获取cookie里面的值

作者:互联网

想要实现一个网站的登录信息,比如token在另一个网站也能用,怎么办???
有一个解决方法就是二级域名之间共享cookie

实现思路是这样的:
一个b.a.com,一个c.a.com的二级域名
在c.a.com需要得到b.a.com登录成功的token,那就需要在b.a.com登录成功后在顶级域名a.com(www.a.com也是二级域名,不是顶级域名哦)的cookie里存入token值,然后在c.a.com里面拿到token值

来上代码
b.a.com的登录页面存入token值

//成功登录后将token存入cookie
this.$api.userLogin(this.form).then((res) => {
            // console.log(res);
            if (res.success) {
            	this.$message.success("登录成功");
              this.setCookie("token", res.data.token, 1);
            } else {
              this.$message.error(res.message);
            }
          });
// 保存cookie的方法,根据实际情况将a.com换成真实的顶级域名
    setCookie(cName, value, expiredays) {
      var exdate = new Date();
      exdate.setDate(exdate.getDate() + expiredays);
      document.cookie =
        cName +
        "=" +
        decodeURIComponent(value) +
        (expiredays == null ? "" : ";expires=" + exdate.toGMTString()) +
        ";path=/;domain=a.com";
    },

在c.a.com页面中拿到token值

// 获取cookie
    getCookie(key) {
      if (document.cookie.length > 0) {
        var start = document.cookie.indexOf(key + "=");
        if (start !== -1) {
          start = start + key.length + 1;
          var end = document.cookie.indexOf(";", start);
          if (end === -1) end = document.cookie.length;
          return unescape(document.cookie.substring(start, end));
        }
      }
      return "";
    },
created() {
    let token = this.getCookie("token");
    console.log(token)
  },

结束,欢迎留言

标签:网页,res,二级域名,start,token,cookie,document,com
来源: https://blog.csdn.net/weixin_52921391/article/details/120200049