CI 묻고 답하기

제목 세션을 이용해서 관리자가 회원을 강제로 로그아웃시키는 방법이 있을까요?
카테고리 CI 2, 3
글쓴이 dantaek 작성시각 2018/01/18 19:29:45
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 12568   RSS

관리자가 특정 사용자를 강제로 로그아웃 시키는 기능을 구현하고 싶은데  좋은  의견 듣고싶습니다..

CI에서 제공하는 세션 기능을 이용해서 처음에 시도한것은.,

1. 사용자가 로그인 하면 세션아이디 값을 회원 테이블에 저장한다.

2. 관리자가 [특정 회원 강제 로그아웃] 버튼을 클릭하면 해당 회원의 세션 아이디를 가져오고, 그 값으로 ci_session 테이블과 매칭되는 레코드를 삭제한다

 

위의 방법으로 했을떄는 문제가 ., 세션에 sess_time_to_update 설정 때문에 세션과 세션 아이디가 계속 갱신되어서., 시간이 지나면 제대로 동작을 안하네요ㅠㅠ

세션을 갱신할때마다 회원 테이블에 같이 업데이트를 해주면 좋을 것 같은데,,. 찾아보니 그렇게 구현은 안될 것 같고.. 좋은 방법이 떠오르지 않습니다.

 

CREATE TABLE IF NOT EXISTS  `ci_sessions` (

session_id varchar(40) DEFAULT '0' NOT NULL,

ip_address varchar(16) DEFAULT '0' NOT NULL,

user_agent varchar(120) NOT NULL,

last_activity int(10) unsigned DEFAULT 0 NOT NULL,

user_data text NOT NULL,

PRIMARY KEY (session_id),

KEY `last_activity_idx` (`last_activity`)

);

 

위에가 ci_session 테이블 구조인데,. 여기서 기타 필드(예를드면 회원의 no를 저장할 수 있는 필드)를 추가해서 세션이 만들어질떄 값이 채워지도록 할 수는 없겠죠??

의견 주시면 정말 감사하겠습니다.

 다음글 CI 3.1.7 DB 세션 사용시 데이터 생성이 안됩니... (1)
 이전글 세션 공유를 할려면 어떻게 해야할까요? (4)

댓글

한대승(불의회상) / 2018/01/19 09:26:50 / 추천 0
hook을 이용해서 처리하세요.
변종원(웅파) / 2018/01/19 09:47:29 / 추천 0
db 세션을 사용하면 특정회원 찾아서 강제 로그아웃 가능합니다.
dantaek / 2018/01/19 16:05:36 / 추천 0
두 분 답변 감사합니다 ., 그 특정 회원에게 할당된 세션 아이디를 db에서 삭제하고 싶은건데., 그 해당 회원의 세션 아이디를 찾을 수 있는 방법이 있나요?? 
dantaek / 2018/01/24 04:25:59 / 추천 0
답을 찾지 못해서, pusher-js로 해결했습니다 ㅠㅠ
변종원(웅파) / 2018/01/24 12:02:18 / 추천 0
dantaek/ 2버전에선 세션테이블의 data에서 사용자를 like 검색하면 됐는데 3버전에선 data 값이 암호화 되어 있네요. ^^;;
dantaek / 2018/01/24 15:17:50 / 추천 0
네 맞습니다., ㅜㅜ 세션 테이블 구조가 바뀌었더라구요., 버전에 대한 힌트도 미리 드렸어야하는데 ~ 감사합니다!