目前有两个域名, www.a.com ,www.b.com,要通过cookie存储用户信息,实现单点登陆, 在进入a,b网站后,首先判断当前cookie中有没有user信息, 如果有user信息,则表明当前用户已经登陆过, 如果没有cookie信息,前端调用登陆接口并将返回的用户信息记录在cookie中。目前,登陆喝认证过程已经分别在a,b网站实现,现在想实现从a站登陆后,同时在b站也写入cookie。
思路:在a站的登陆ajax请求成功后, 请求一个b域名下的api接口,并将登陆信息作为参数发送过去,在接口调用的后台处理程序中,写入cookie,这样b域下即可读到用户的登陆信息。
思路是这样,实现过程中有三点注意:
1.ajax请求添加 {withCredentials:true}
一方面,通过设置 withCredentials, 可以使得跨域ajax请求中协带cookie, 如果此时想在接口中处理cookie, 也需要设置为true。
2.后台接口跨域设置
当withCredentials设置为true时,后台跨域处理,头部“Access-Control-Allow-Origin” 不可以设置为 "*", 必须为确定的域名,
此时应设置为 Access-Control-Allow-Credentials: true;Access-Control-Allow-Origin:"<origin>" *origin为发起请求的域名。
3.此时从a登陆后,调用b站提供的写入cookie的接口,可以从浏览器中看到已经把cookie写入了b站。但是此时通过