Ajax跨域调接口并用写入Cookie,单点登陆最简单实现

本文介绍了一种通过Ajax跨域调用接口并在不同域名间写入Cookie来实现单点登录的方法。关键步骤包括设置Ajax的withCredentials为true、后台正确配置跨域策略以及处理httpOnly属性确保前端能读取Cookie。通过这种方式,用户在a.com登录后,b.com也能获取到登录信息,从而实现单点登录功能。
摘要由CSDN通过智能技术生成

目前有两个域名, 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站。但是此时通过

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值