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

本文介绍了如何通过设置顶级域名a.com的cookie实现两个二级域名b.a.com和c.a.com之间的登录信息共享,重点讲解了登录成功后的token存储和在c.a.com获取token的步骤,以及相关的代码示例。
摘要由CSDN通过智能技术生成

想要实现一个网站的登录信息,比如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)
  },

结束,欢迎留言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值