1、认证中心cookie跨越问题
设计需求: 让A系统经过认证中心后,免登陆进入B系统(即登陆一次,可以访问多个系统)
设计理论:
《cookie中的domain属性详解》
domain表示的是cookie所在的域,默认为请求的地址,如网址为www.baidu.com/test/test.jsp,那么domain默认为www.baidu.com。而跨域访问,如域A为t1.test.com,域B为t2.test.com,那么在域A生产一个令域A和域B都能访问的cookie就要将该cookie的domain设置为.test.com;如果要在域A生产一个令域A不能访问而域B能访问的cookie就要将该cookie的domain设置为t2.test.com。
代码设计
后台springboot:
Cookie cookie = new SimpleCookie();
cookie.setHttpOnly(true);
cookie.setName("eduid");
cookie.setDomain(".baidu.com");
前端vue:
doLogin(p).then(result => {
if (result.code != 200) {
this.$Message.info(result.message);
} else {
this.$cookies.set("islo","y",-1,"/",".baidu.com");
location.href = result.data;
}
});