제목 | DB Session 로그인 이상현상 | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 배우러7r | 작성시각 | 2019/06/10 17:59:59 |
|
|||
안녕하세요.
로그인 처리에서 무슨 이슈가 있는지 잘 모르겠어서 찾아보다가 질문드립니다. 문제는 처음 로그인은 잘되는데 세션만료시간 이후(?) 재로그인시 로그인 처리가 안되고 다시 로그인을 해야(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
실습 예제는 여기를 참고. |
배우러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
아.. 해결된줄 알았으나 다시 체크하니 동일한 증상이 나오네요.
뭔가 잔존하는 캐쉬(?)가 있는것 같습니다. |