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 로 요청할 때 마다 브라우저의 쿠키정보를 매번 전송해주어야 유지가 되며 세션을 삭제할 때는 클라이언트 측 브라우저에서 세션을 삭제합니다.

0 댓글