CI 묻고 답하기

제목 CI DB세션 자동 만료 체크
카테고리 CI 4 관련
글쓴이 쑤닝 작성시각 2022/11/18 13:46:21
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 4655   RSS

안녕하세요! 

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에 기록해서 세션이 풀리는 시간으로 가져오시면 됄듯합니다.