CI 묻고 답하기

제목 default controller의 플로우?에 대해 궁금한 점이 있습니다.
카테고리 CI 2, 3
글쓴이 rawPHPoverCI 작성시각 2017/01/16 16:57:28
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 15110   RSS

현재 사용하고 있는 어플리케이션에서 main에는 로그인 기능이 있고

로그인은 auth라는 컨트롤러에서 확인 후 session data에 필요한 데이터를 바인딩하고 main으로 다시 리다이렉션합니다.

문제는 domainurl로 접속을 했을 시

로그인을 하면 www.domainurl 로 리다이렉션되면서(base_url이 www.- 형태입니다) 로그인이 되지 않는다는 점입니다.

세션 데이터를 찍어도 바인딩이 안 되어 있습니다.

이 때, 다시 domainurl을 쳐서 들어가면 *세션 데이터가 바인딩되고 로그인이 됩니다.

그렇게 로그인을 강제한 후(세션 데이터가 생기고 난후) www.domainurl으로 *들어가보면 당연하게도 로그인되어 있습니다(세션데이터 유무로 로그인 여부를 판별함)

그리고 처음부터 www.domainurl으로 접속을 한 뒤 로그인을 하면 *정상적으로 로그인 된 상태로 www.domainurl으로 리다이렉션 됩니다.

 

추가적으로, auth에서 로그인 성공/실패 시 그에 맞는 flashdata를 설정하는데 이 역시 위의 첫 로그인 시점들인 *들에서 나타납니다.

 

A record에 www.-도 등록해놓은 상태인데 제가 dns 같은 것에 대해 정확히 몰라서요... 어떻게 해결할 수 있을까요?

 다음글 어제 서버관리자님이 봐주셧는데..해결이안됐네요 PHP... (14)
 이전글 CI_Controller not found 문제..... (5)

댓글

kaido / 2017/01/16 17:25:46 / 추천 0

 default controller  때문에 세션이 생성 안된다거나 하는 이야기는 들어보지 못했습니다.

객체를 복사해서 만들진 않으며, 해당 컨트롤러를 지정해 줄 뿐입니다.

 

세션이 어디에서 만들어지고 언제 사라지는지 추적을 해보실 필요가 있습니다.

$this->output->enable_profiler(true);

 

세션 데이터를 페이지별로 확인 해보세요.

물론 리다이렉션 부분 일단 주석 으로 막아놓고 하나 하나 찾아 가셔야 합니다.

rawPHPoverCI / 2017/01/16 20:10:38 / 추천 0
@kaido 질문 수정했습니다 다시 한번만 알려주실 수 있나요?
rawPHPoverCI / 2017/01/16 20:21:59 / 추천 0
제가 생각해 본 가능한 해결책으로는 base_url이 현재 url의 origin을 그대로 쓰는 방법이 있을텐데, 아무래도 url이라는 것은 js쪽에서 건드리는 것이고 만약 가능하다고 해도 그에 따라 서버php(ci)의 base_url 값이 유동적으로 변하는 것은 유저가 한명이 아닌 이상 오히려 불편할 가능성이 있을 것 같습니다. 혹시 user-friendly하게 base_url을 유동적으로 쓰는 방법이 있을까요?
kaido / 2017/01/17 08:40:22 / 추천 0

@rawPHPoverCI

쪽지로 답변 드렸습니다.

 

요약하면 도메인을 하나로 통일 시키던가, 아니면 로그인 처리 할때 처리 하는 방법이 있습니다.

 

로그인 관련 라이브러리들을 참고해 보시면 어떤 방법으로 처리 하고 있는지 명쾌하게 나와있습니다.