CI 묻고 답하기

제목 DB Session 로그인 이상현상
카테고리 CI 2, 3
글쓴이 배우러7r 작성시각 2019/06/10 17:59:59
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 15795   RSS

안녕하세요.

 

로그인 처리에서 무슨 이슈가 있는지 잘 모르겠어서 찾아보다가 질문드립니다.

문제는 처음 로그인은 잘되는데 세션만료시간 이후(?) 재로그인시 로그인 처리가 안되고 다시 로그인을 해야(2중 로그인) 다시 로그인이 되는 현상인데요.

 

로그인 페이지에서 세션을 저장하고 redirect 후 session 체크를 해보니 

array(1) { ["__ci_last_regenerate"]=> int(1560154555) }

정보만 나와 로그인 페이지로 다시 보내지는 현상입니다.

 

어떤 조치를 해야 되는지 설명 부탁드립니다.

사실 2번 로그인해서라도 잘 돌아는 가서 그냥 써도 써지기는 하는데...

세션때문에 너무 신경쓰이네요... 자체해결하려다가 3,4일정도 날린거 같습니다.

 

아래는 현재 서버 상태입니다.

CI 3.1.10

php5.6.40

mysql5.6.35

nginx 1.10.3

 

db config

$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 1800;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 60;
$config['sess_regenerate_destroy'] = FALSE;

 

 

태그 session,database
 다음글 페이지네이션 커스터마이징 하는 중인데,,이상한 현상이 ... (5)
 이전글 이미지 리사이징 질문드립니다! (4)

댓글

엽토군 / 2019/06/11 00:37:33 / 추천 0
DB의 ci_sessions 테이블엔 값이 꽂히나요?
배우러7r / 2019/06/11 07:13:15 / 추천 0
네. 답변감사합니다.
희한한게 디비에는 값이 재대로 콪히더라구요.

모바일 브라우저는 안끄고 있어서인지 세션이 풀린 뒤에도 재로그인하면 한방에 로그인 되던데...

세션을 넣는 컨트롤러에서는 값이 찍히는거같던데 리다이렉트 후 세션 가져올때 재대로 못읽는거 같더라구요.

찾아볼때 찾은 해결방법은 ci2버전때 해결방법으로 확인해서 처리를 못하고있습니다.
배우러7r / 2019/06/11 12:05:12 / 추천 0

추가적으로 db세션 문제인가 싶어서 file 세션으로 변경해 보았으나 동일한 증상이 나타납니다.

 

로그인 시도시

$this->session->set_userdata($result['data']);
if (isset($_SESSION['userId'])) {
    redirect("admin/menu");
}

 

세션을 넣고 해당 세션값이 존재하면 redirect시키게 한 후 다음과 같이 처리하도록 해놨습니다.

[세션값 없으면 다시 로그인 페이지로 이동하도록]

 

       if (!isset($_SESSION['userId'])) {
            var_dump($_SESSION);exit;
//            redirect('/admin/account');
        }

 

해당 이슈 처리 방법을 모르겠네요... CI2쓸때는 이런 이슈가 없었는데...

kaido / 2019/06/11 12:13:15 / 추천 0

ci session 은 기본적으로 userdata로 가져옵니다. 

또한 ci3 session은 php native session 을 사용하지 않습니다.

$this->session->userdata('userId');

// 오브젝트 리턴이라서 아래와 같이도 가능

$this->session->userId 

 

실습 예제는 여기를 참고.

http://sample.cikorea.net/ci20/sample_view/class/session

배우러7r / 2019/06/11 12:29:20 / 추천 0

userdata로 바꾸고 이슈가 없어진줄 알았으나 다시 확인해보니 동일한 증상이 계속되고 있습니다.

 

변경한 내용은 다음과 같습니다.

$this->session->set_userdata($result['data']);
if ($this->session->userdata('userId') != null) {
    redirect("admin/menu");
}

 

if ($this->session->userdata('userId') == null) {
            var_dump($_SESSION);exit;
//            redirect('/admin/account');
 }
배우러7r / 2019/06/11 13:47:25 / 추천 0

아.. 해결된줄 알았으나 다시 체크하니 동일한 증상이 나오네요.

 

뭔가 잔존하는 캐쉬(?)가 있는것 같습니다.