IP관계없이 ID 한개만 접속 (아이디 중복 방지)

IP관계없이 ID 한개만 접속 (아이디 중복 방지)

QA

IP관계없이 ID 한개만 접속 (아이디 중복 방지)

본문

검색해봐도 잘 모르겠어서 질문드려봅니다.

 

IP 가 다르건 컴터가 다르건 상관없이

무조건 한개의 ID만  접속하게 하고 싶습니다.

 

검색으론 로그인시 디비와 세션에 ID+랜덤숫자 를 기록하고 비교하라는게

제가 하고싶은 의도와 맞는거 같은데 어떻게 구현해야 할지 막막하네요.

 

이 질문에 댓글 쓰기 :

답변 4


    $session_dir =    G5_SESSION_PATH;
    $d = dir($session_dir);
    while (false != ($entry = $d->read())) {
        $temp = file($session_dir . '/' . $entry);
        if (preg_match("`ss_mb_id\|[^;]*\"" . $mb['mb_id'] . "\";`", $temp[0])) {
        $d = dir($session_dir);
        while (false !== ($entry = $d->read())) {
          if (substr($entry, 0, 1) != '.' && $entry != 'index.php'){
            $temp = file($session_dir . '/' . $entry);
            if (preg_match("`ss_mb_id\|[^;]*\"" . $mb['mb_id'] . "\";`", $temp[0])) {
              unlink($session_dir . '/' . $entry);
            }
          }
        }
        }
    }

답변 감사합니다. 알려주신 코드가  https://sir.kr/g4_tiptech/34382  이곳 팁과 비슷하네요.

적용해서 써봤는데요.  작동이 잘 됩니다.
욕심을 내자면 질문의 본문 내용처럼  A로그인중 B가 로그인 할경우
A는 로그아웃 되고 B는 로그인이 되었으면 하는데

위 코드로는 둘다 로그아웃 되버리네요.

두 번째 id가 로그인 시

어떻게 하실 생각( 정책) 인가요?

여러 방법이 있겠지만 제일 간단한건

로그인 시 기존 세션을 날려버리는 게 제일 심플하고 편합니다.

 

A 사용자가 AAAA 아이디로 로그인 후
B 사용자가 다른 컴이든 지역이든 AAAA 아이디로 재 로그인하면

A 사용자의 세션이 삭제되고 B 사용자의 세션으로 기록되기 때문에

A 사용자가 페이지 이동시 로그아웃 처리가 됩니다.

즉, 마지막 로그인한 사용자만 유효한 것이죠.

이런 방식으로 처리하시는게 좋을듯합니다.

 

말씀하신 방법이 간단하지만
두 곳에서 경쟁적으로 로그인 시도가 계속되면 문제가 될 수 있지 않을까요?
로그인 시 최소 10분? 정도는
 다른 곳에서 로그인을 차단해 주는 방법도 좋을 듯합니다.

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

회원로그인

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