이런류의 사용방법 문의좀

이런류의 사용방법 문의좀

QA

이런류의 사용방법 문의좀

본문

839343445_1596386953.7069.png

 

위 이미지 보면 우측에 알림 숨김 체크 누르면 왼쪽에 긴급알림 공지가 숨겨지고

메뉴1 에서 메뉴2 이동해도 저 체크가 풀리지가 않더라구요.

체크 해제하면 다시 공지내용 보이고 메뉴간에 이동해도 내용이 보이던데

혹시 이런방법은 어떻게 하는건가요?

 

해보고싶은데 뭘참고해야할지 모르겠네요

이 질문에 댓글 쓰기 :

답변 2

쿠키와 세션을 활용한 안내 방법입니다.

그누보드 팝업창에서 오늘하루 보지않기 이 부분도 쿠키를 활용하여

사용자의 설정을 브라우저에 저장하는 방식인데요.

아래 예제는 세션을 활용한 예제입니다. 한번 참고해보세요~

 

 

프로세스 동작순서

1. A에서 최초 로그인시 해당 세션값 DB저장

3. B에서 두번째 로그인

4. A에서 다른 페이지 이동 or 새로고침 시 다른 기기에서 로그아웃됨을 알리고 로그아웃 프로세스 동작

 

 

 

 DB 구조 
id 테이블 인덱스(AUTO_INCREMENT)
type 활성화타입(A:활성화, B:비활성화)
sesstion 세션값
mem_idx 사용자 구분 인덱스

(로그인 시간 계산이 필요한 경우는 추가로 넣어주면 된다)

 

 

 

개발 프로세스

1. 로그인시 세션값 가져오기

$sesstion = session_id();

 

id type session mem_idx
1 A 가나다 99

↑ A에서 최초로그인한 데이터

 

 

2. 기존 DB에 있는 사용자세션 비활성화 시키기 

UPDATE session_table SET type='B' WHERE mem_idx='$mem_idx'

id type session mem_idx
1 B 가나다 99

 


3. DB에 현재 사용자세션 저장

INSERT INTO session_table ('session', 'type', 'mem_idx') VALUES ('$sesstion', 'A', '$mem_idx')

id type session mem_idx
1 B 가나다 99
2 A 라마바 99

↑ 기존 세션 비활성화 처리 후 B에서 로그인한 데이터 삽입

 

 

4. 사이트 내 모든 페이지 헤더영역에서 DB에 있는 세션정보+활성화타입 비교 후 로그아웃 시켜주기

SELECT type FROM session_table WHERE mem_idx='$mem_idx' AND sesstion = '$session'

 

if(type == 'B')

{

   alert('중복로그인이 감지되었습니다.');

   // 로그아웃 동작 코드삽입

}

 

이렇게 작업이 끝나고 다시 A에서 로그인한다면 B사이트에서는 로그아웃되고 DB 데이터는 다음과 같다.

id type session mem_idx
1 B 가나다 99
2 B 라마바 99
3 A 가나다 99

 

 

DB에 기존정보를 삭제해도 되지만

혹시나 서비스중에 중복로그인 접속여부를 알고싶어하는 클라이언트가 발생할수도 있으니 

일단 저장해놓기로 했다.

 

출처:https://jjangki.tistory.com/72

답변을 작성하시기 전에 로그인 해주세요.
전체 59,584
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT