CI 묻고 답하기

제목 세션 공유에 대해서 여쭙니다.
카테고리 CI 2, 3
글쓴이 뫄뫄잉뿌 작성시각 2017/12/08 15:24:47
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 20169   RSS

http://www.codeigniter-kr.org/bbs/view/etc_qna?idx=18372&page=1&view_category=&lists_style=

 

현재 서브도메인과 메인도메인을 각각 다른 홈페이지로 구성하고,

이 두 도메인에서 서브도메인에 로그인한 정보를 메인도메인에서 쓰려고 합니다.

위의 링크를 참고해서 user_id를 추가시키고, ci_sessions DB를 통해서 하려고하는데

메인 도메인은 회사 메인 홈페이지, 서브 도메인은 회사의 인트라넷이라 

ci_sessions의 ip_address 필드의 값이 모두 사내 IP로 같습니다.

각각의 사원들에 대해서 timestamp가 만약 같게 되어도 id 값은 다른가요?

또, user_id를 this->session->userdata('user_id')로 넣으려고 하는데,

그럼 내부적인 절차로는 로그인으로 세션을 생성 후 시스템 세션이 돌아가는건가요?

 

http://www.ciboard.co.kr/user_guide/kr/libraries/sessions.html

세션에 대한 설명은 아직 번역이 덜 되었나봐요 ㅜㅜ 

세션 유지 시간은 근무 시간 내내 적용시켜야되서 session_expiration 은 0으로, sess_time_to_update 를 0으로 잡았는데,

이렇게 되면 한 유저가 로그인 했을 때 세션 id 값은 브라우저가 닫히기 전까지는 같은 id 가 맞는건가요?

 다음글 이미지경로 설정 질문입니다. (5)
 이전글 이메일 보내기 메일이 안와요????? 무슨 문제인지 알... (6)

댓글

변종원(웅파) / 2017/12/08 15:46:39 / 추천 0

질문을 다시 정리하셔야 할 것 같네요.

timestamp와 id는 연관이 없습니다. (서브도메인 세션 공유에서) 살아있는지 체크하고 세션을 갱신하는데 사용됩니다. 

https://www.google.com/search?q=codeigniter+%EC%84%9C%EB%B8%8C%EB%8F%84%EB%A9%94%EC%9D%B8+%EC%84%B8%EC%85%98%EA%B3%B5%EC%9C%A0&oq=codeigniter+%EC%84%9C%EB%B8%8C%EB%8F%84%EB%A9%94%EC%9D%B8+%EC%84%B8%EC%85%98%EA%B3%B5%EC%9C%A0&aqs=chrome..69i57.11141j0j7&sourceid=chrome&ie=UTF-8

뫄뫄잉뿌 / 2017/12/11 13:41:06 / 추천 0

@변종원(웅파)님

답변 감사합니다! ci_session을 쿠키로 저장해서 공유하는건 성공했습니다.

http://www.ciboard.co.kr/user_guide/kr/libraries/sessions.html 요 링크를 참고하면서 보고 있는데, 

로그인 시, cookie로 ci_session값이 저장이 되는데 로그아웃때는 ci_session 쿠키값을 삭제 하지 않고 있는데 혹시 이유가 있는 건가요?

시크릿 창으로 세션, 쿠키값 보니까 처음엔 아무 것도 없다가, 로그인 하고 세션값, 쿠키 ci_session 값이 생성된 후에 로그아웃을 하면 세션은 비어있는데 ci_session 쿠키값은 기존 값 그대로 유지가 됩니다.

혹시 제가 cookie_lifetime 설정을 7200로 두어서 그럴까요.. ㅜㅜ

delete_cookie('ci_session'); 이렇게 해도 계속 유지가 되는데 제가 용도를 잘못생각한건가요..?

변종원(웅파) / 2017/12/11 13:45:25 / 추천 0

빈 쿠키는 아무런 의미가 없죠. ^^

세션 쿠키라는 방식이라 좀 다릅니다. 사용자정의 값(아이디, 로그인 여부 등)은 서버의 세션에 저장이 되고

쿠키가 사용자pc에 생성됩니다. 쿠키아이디가 세션의 키가 되구요. 쿠키키(세션키)만 있고  user_data는 비어 있는 세션은

빈 세션과 동일하기 때문에 있으나 없으나 똑같습니다.

뫄뫄잉뿌 / 2017/12/11 13:56:09 / 추천 0

@변종원(웅파)님

빠른 답변 감사합니다!!

그럼 쿠키키(세션키)가 공유가 되어도 세션은 공유가 안되서 쿠키키로는 세션정보를 가져올 수 없고, 가지고 온 쿠키키로 DB에 저장되어 있는 정보를 가져와서 처리해야한다는 말씀이신거죠?

그럼 로그아웃을 했을 때 쿠키키(세션키)가 있어도 로그아웃 한 페이지에서는 세션이 비어있는 것이 맞고, 다른 공유 홈페이지에서는 로그아웃을 했다는 것을 어떻게 알아야 하나요..?

변종원(웅파) / 2017/12/11 14:32:14 / 추천 0
로그인 여부는 세션(db)에 데이터가 있는지 여부니까 개발자가 알수있죠.
뫄뫄잉뿌 / 2017/12/11 15:05:20 / 추천 0

@변종원(웅파)님

답변 감사합니다!!

로그아웃을 하면 data필드가 비어있군용 ㅎㅎ 감사합니다!