제목 | HTTP와 HTTPS 간 로그인 세션 공유 질문 드립니다. | ||
---|---|---|---|
카테고리 | PHP | ||
글쓴이 | 김재현 | 작성시각 | 2017/09/24 22:32:23 |
|
|||
안녕하세요... 6개월 접한 초보입니다. 열심히 찾아 봤지만 해결이 안되서 질문을 드립니다. 사이트는 가비아에 있는데요. 사이트 URL 이 sample.com, https://sample.com:5000 입니다. 로그인 할때 만 https://sample.com:5000 주소를 사용합니다. 각가의 URL 에서는 세션이 정상적으로 처리 됩니다. sample.com 에서 로그인으로 https://sample.com:5000 주소에서 처리되고 다시 sample.com 으로 돌아 오면 세션이 양쪽 URL에서 다 처리가 안됩니다. 따라서 위 두 주소간 세션 공유는 가능한 일입니까? 가능하다면 어떻게 조취를 취햐야 될까요.
참고로 config.php 정보 첨부합니다. $config['sess_cookie_name'] = 'ci_session'; $config['sess_expiration'] = 36000; $config['sess_expire_on_close'] = TRUE; $config['sess_encrypt_cookie'] = FALSE; $config['sess_use_database'] = TRUE; $config['sess_table_name'] = 'ci_sessions'; $config['sess_match_ip'] = FALSE; $config['sess_match_useragent'] = FALSE; $config['sess_time_to_update'] = 36000; $config['cookie_prefix'] = "sample_"; $config['cookie_domain'] = ".sample.com"; $config['cookie_path'] = "/"; $config['cookie_secure'] = FALSE; $config['global_xss_filtering'] = FALSE; $config['csrf_protection'] = FALSE; $config['csrf_token_name'] = 'csrf_test_name'; $config['csrf_cookie_name'] = 'csrf_cookie_name'; $config['csrf_expire'] = 7200;
세션 처리하는 부분 $this->session->set_userdata("id",$result->id); //회원번호 $this->session->set_userdata("type",$result->type); //회원구분 $this->session->set_userdata("name",$result->name); //회원명 $this->session->set_userdata("email",$result->email); //이메일 $this->session->set_userdata("Phone",$result->phone); //연락처
|
|||
다음글 | 코드이그나이터 객체 배열 질문드립니다! (5) | ||
이전글 | 인쇄창이 출력 이후 javascript 기능들이 작동하... (1) | ||
한대승(불의회상)
/
2017/09/25 09:54:27 /
추천
0
|
김재현
/
2017/09/25 11:27:04 /
추천
0
동일한 프로토콜간 세션공유는 잘됩니다.
|
김재현
/
2017/09/27 00:16:19 /
추천
0
자답입니다. 답변 주신 것을 바탕으로 해결했습니다. 먼저 로그인 로직이 ajaxForm 으로 결과 코드 받아서 처리 합니다. <?php echo $this->session->userdata("session_id");?> 위 코드로 확인해 보면 http://sample.com, https://sample.com:5000 두개의 사이트에서 세션 아이디가 동일하게 생성됩니다. 근데 https://sample.com:5000 주소를 ajax로 호출하게 되면 세션 아이디가 다르게 생성됩니다. 세션 다른게 생성되는 것은 ci_session 테이블에서 확인했습니다. 그래서 로그인 입력 폼에 <input type="hidden" id="Session_id" name="Session_id" value = "<?php echo $this->session->userdata("session_id");?>" /> 추가한 다음 로그인 처리하는 컨트롤 파일에 아래 코드 추가해서 $Sess_key = $this->input->post("Session_id") ; $this->session->set_userdata("session_id", $Sess_key); 해결했습니다.
|
공유해주신 코드상으론 세션 공유가 안되는 특별한 이유를 찾을수가 없군요.
동일한 프로토콜(http 혹은 https)에서 세션 공유에 문제가 없나요?