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