제목 | CI DB세션 자동 만료 체크 | ||
---|---|---|---|
카테고리 | CI 4 관련 | ||
글쓴이 | 쑤닝 | 작성시각 | 2022/11/18 13:46:21 |
|
|||
안녕하세요! CI로 모바일 웹을 개발하여 현재 출시까지 한 상태인데.. 어플에 로그인 한 사용자의 로그인이 자동으로 풀리면( 세션 만료로 인해) 해당 사용자에게 알림이 가지 않도록 처리하려고 합니다. 기기 토큰값은 사용자 DB에 저장되어있는데... CI 포럼 검색해보니 Session.php 를 확장 개발하여 로그 저장해주는 답변이 있길래 Session.php 에서 만료 체크하는 부분은 확인 하였습니다.
if ((empty($_SERVER['HTTP_X_REQUESTED_WITH']) OR strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest') && ($regenerate_time = config_item('sess_time_to_update')) > 0 ) { if ( ! isset($_SESSION['__ci_last_regenerate'])) { $_SESSION['__ci_last_regenerate'] = time(); } elseif ($_SESSION['__ci_last_regenerate'] < (time() - $regenerate_time)) { $this->sess_regenerate((bool) config_item('sess_regenerate_destroy')); //자동 만료 부분 확인 } }
해당 부분에 쿼리를 처리할 수 있는 함수를 넣으려고 하니.. Session.php에서 처리하면 안될것 같아서.. 어느 시점에 작업을 해줘야할지 모르겠어서 이렇게 질문을 남깁니다 ㅠㅠ 답변 부탁드립니다 ㅠㅠ
|
|||
다음글 | CI3 글로벌 트랜잭션 질문입니다. (2) | ||
이전글 | [해결] CI4 ajax 호출로 세션에 저장된 정보 가... (4) | ||
PureAni
/
2022/11/21 12:21:14 /
추천
0
|
로직이 어떻게 돼어있는지는 모르겠습니다만..
개인적인 의견으로는 노티를 보낼때 세션을 체크하는것이 좋지 않을까 생각됍니다.
DB세션을 사용하신다면, 현재 로그인중인 세션 ID들을 쉽게 획득 가능하실듯하고, 그 ID에서 사용자를 가져올수 있으실듯합니다.
그게 아니라면 고전적이지만, PHP가 실행됄때마다 그 시간과 유저 ID를 DB에 기록해서 세션이 풀리는 시간으로 가져오시면 됄듯합니다.