php curl 客户端,php通过curl设置客户端cookie

博客探讨了在实现SSO(Single Sign-On)跨域登录时遇到的问题。传统方法是通过前端<script>标签直接请求认证URL,但若尝试通过后端PHP发起请求,由于同源策略限制,无法在客户端设置域外Cookie。解决方案通常依赖于前端JS的JSONP请求获取Cookie信息,再由PHP构造请求发送给SSO服务器。文中讨论了如何在认证成功后进行安全验证和Cookie设置的方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做SSO跨域登录时,SSO中心回返回一个认证的url,套在

<script>

标签中直接请求即可,

但我想换个思路,返回url后,通过后端(PHP),去请求这个这url,这个url是认证成功了,但由于跨域的问题,无法在客户端设置cookie,求思路!

无解.

SSO

的核心就是在请求对方服务器在认证成功之后,由对方写入对方域下的

Cookie

,以完成登陆.

可你把这一步在服务器端做了, 你肯定不能向浏览器下发不属于你自己域下的

Cookie

.

后端php在curl请求的时候,是可以加cookie头信息的,使用方法一楼已经给出了,但是后端php要想取得浏览器端cookie的内容,还是得靠前端的js请求(确切说是jsonp,也就是你说的script标签)来获取浏览器端的cookie的具体内容,然后在组织一个curl请求发送给SSO服务器端。

$header = array (

............................

);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

后端认证成功后是否会做跳转 如果会跳转 则把参数带过去 在前端用js根据参数进行参数安全验证后设置cookie

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值