> 백엔드 개발 > PHP 튜토리얼 > 跨域 - php通过curl设置客户端cookie

跨域 - php通过curl设置客户端cookie

WBOY
풀어 주다: 2016-06-06 20:34:16
원래의
868명이 탐색했습니다.

在做SSO跨域登录时,SSO中心回返回一个认证的url,套在<script></script>标签中直接请求即可,
但我想换个思路,返回url后,通过后端(PHP),去请求这个这url,这个url是认证成功了,但由于跨域的问题,无法在客户端设置cookie,求思路!

回复内容:

在做SSO跨域登录时,SSO中心回返回一个认证的url,套在<script></script>标签中直接请求即可,
但我想换个思路,返回url后,通过后端(PHP),去请求这个这url,这个url是认证成功了,但由于跨域的问题,无法在客户端设置cookie,求思路!

无解.
SSO的核心就是在请求对方服务器在认证成功之后,由对方写入对方域下的Cookie,以完成登陆.
可你把这一步在服务器端做了, 你肯定不能向浏览器下发不属于你自己域下的Cookie.

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

<code>$header = array (  
    ............................
     );
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
</code>
로그인 후 복사

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿