CI 묻고 답하기

제목 hook 자동로그인 조언 부탁드립니다!!
카테고리 CI 2, 3
글쓴이 미스힐링 작성시각 2020/03/05 16:22:23
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 10537   RSS

 

public function __construct()     {       

$this->CI = & get_instance();       

$this->CI->load->helper('url');   

}  

public function check_login()    {       

 if(isset($this->CI->allow) && (is_array($this->CI->allow) === false

OR in_array($this->CI->router->method, $this->CI->allow) === false))  {           

if (!$this->CI->session->userdata('idx'))             {               

redirect('Login'); // 로그인창으로 강제 이동           

}           

else           

{               

redirect('Notice');           

}       

}   

}

 

자동 로그인을 작업하고 있습니다. 로그인 세션을 체크해서 로그인된 세션값에 idx data가 없을경우 

로그인창으로 강제로 이동시키고 로그인된 세션값에 idx data가 있을경우 메인화면으로 이동시키려고 하는데

실제로 로직을 돌리니까  아래와 같은 에러가 나면서 페이지가 터져버립니다. 

 

페이지가 작동하지 않습니다.

localhost에서 리디렉션한 횟수가 너무 많습니다.

 

redirect('Notice');       이부분을 주석처리하면 정상작동 하긴 하는데 이런식으로 로직을 짜면 안되는건가요?

고수님들의 조언 구합니다 ㅜㅜ

 다음글 URL 문의 드립니다!! (2)
 이전글 csrf 보안관련 질문 드립니다.!! (4)

댓글

변종원(웅파) / 2020/03/05 16:38:11 / 추천 0

hook이라 대상 페이지 갔다가 다시  hook에서 걸려서 리다이렉트 계속 무한 반복입니다.

조건문 다시 확인해보세요.

미스힐링 / 2020/03/05 16:42:37 / 추천 0

혹시 조건문은

1) isset($this->CI->allow) && (is_array($this->CI->allow) === false OR in_array($this->CI->router->method, $this->CI->allow) === false)

2) !$this->CI->session->userdata('idx')

이거중에 어떤거 말씀이실까요??

변종원(웅파) / 2020/03/05 17:29:35 / 추천 0

미스힐링/ 조건문은 다 보셔야죠. 아래 리다이렉트문으로 계속 이동하는 상태니까요.

hook 실행 시점은 어떻게 설정하셨는지요? 

kaido / 2020/03/05 17:34:30 / 추천 0

@미스힐링

쉽게 설명 드립니다.

훅은 "모든 페이지" 에서 체크합니다.

"로그인 페이지" 도 훅에 걸립니다.

 

메인페이지 > 후킹  로그인 페이지로 > 후킹 로그인 페이지로 > 반복

 

그래서 후킹 페이지 로드 시점을 바꾸던가, 처음 접근 하는 후킹인지 판단여부를 넣습니다.

미스힐링 / 2020/03/06 11:50:08 / 추천 0

답변 감사드립니다!! 모든 페이지가 시작될때 다시 hooks 돈다는 부분을 간과했던것 같습니다!! 

덕분에 해결했습니다!! 감사드립니다~!!