2015-01-29 4 views
3

두 개의 웹 사이트가 있습니다. 다른 도메인의 컬 요청으로 쿠키를 설정하고 싶습니다.컬이나 다른 방법으로 교차 도메인 쿠키를 설정하는 방법은 무엇입니까?

첫 번째 웹 사이트에서 컬 요청을하고 있습니다.

$url = 'http://www.secondwebsite.com/ext/access/api/manage.php'; 
$data = array('id' => '23', 
    "firstname" => "First name", 
    "lastname" => "last name", 
    "email" => "[email protected]", 
    'username' => 'username', 
    'password' => 'password123', 
    'action' => 'add', 
    'authkey' => '12345tgtgtt'); 
$ch = curl_init($url); 
$data_string = urlencode(json_encode($data)); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, array("customer" => $data_string)); 

$result = curl_exec($ch); 
curl_close($ch);  
$result = json_decode($result); 

manage.php (코드 구조)

setcookie('username', $_POST['username'], time() + (86400 * 30), "/"); // 86400 = 1 day 
setcookie('password', $_POST['password'], time() + (86400 * 30), "/"); // 86400 = 1 day 

그러나 쿠키가 www.secondwebsite.com 설정되지 않습니다 다음은 코드 구조입니다. 다른 도메인 간 쿠키를 설정하는 방법이 있습니까? 사실 두 웹 사이트간에 SSO (Single Sign On) 기능을 개발하고 싶습니다. firstwebsite.com에 로그인 한 사용자가 secondwebsite.com에 자동으로 로그인하면됩니다.

PHP에서 SSO 기능에 대한 접근법이 있습니까? 공유하십시오 ..

+0

... 당신 같은 브라우저에있을 것입니다. 'nastysite.ru'가'onlinebank.com'에 쿠키를 조작 (설정/읽기/변경/삭제) 할 수 있다면 어떻게 될지 상상해보십시오. –

답변

0

PHP에서 액세스 제어 방법을 사용하여 상호 도메인에서 쿠키 및 세션 사용을 설정할 수 있습니다. PHP 파일

header("Access-Control-Allow-Origin: http://example.com"); 
header("Access-Control-Allow-Credentials: true"); 
header("Access-Control-Allow-Methods: GET, POST,OPTIONS"); 
header("Access-Control-Allow-Headers: Content-Type, *"); 

저장이 코드는 다음 당신은 아약스 요청을 통해이 파일을 요청해야합니다.

$.ajax(..... 

    crossDomain: true, 
      xhrFields: { 
       withCredentials: true 
      }, 
...); 

쿠키와 reqested 도메인의 세션은 요청 domain.And 쿠키에서 제어되며, 세션 데이터는 또한 당신은 할 수 없습니다

관련 문제