Curl 를 통해 데이터를 주고받으면 동일한 도메인이라도 세션을 공유할 수 없습니다. 이를 해결하기 위해 상대 도메인에 브라우저의 쿠키 정보를 함께 전송해주면 공유가 가능하게 됩니다.
<?php
function curl_trans_ssid( $query )
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, BIRD_API_URL);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIE,
session_name() . '=' . session_id()
);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$query = array(
'user_id' => 'habony',
'user_pw' => '123456789'
);
$result = curl_trans_ssid($query);
echo $result . " 님 로그인 성공하셨습니다.";
?>
참고로 정상적으로 세션을 만들었다하더라도 Curl 로 요청할 때 마다 브라우저의 쿠키정보를 매번 전송해주어야 유지가 되며 세션을 삭제할 때는 클라이언트 측 브라우저에서 세션을 삭제합니다.