자동로그인이 매일 풀립니다.

자동로그인이 매일 풀립니다.

QA

자동로그인이 매일 풀립니다.

본문

모바일에서 자동로그인이 밤 12시만 되면 풀려버립니다.

 

현재 상황을 말씀드리겠습니다.

 

PC에서는 브라우저를 완전히 껐다가 켜도 로그인이 되어 있습니다.(컴퓨터를 껐다가 켜면 다시 로그인을 해야합니다.)

로그아웃을 했다가 브라우저를 끄지 않은 상태에서 다시 로그인을 시도하면 아이디와 비밀번호를 입력하지 않아도 같은 계정으로 자동으로 로그인이 됩니다.

(카카오 계정으로만 로그인을 할 수 있도록 제작했습니다.

원래 루트 : 카카오로 로그인하기 버튼 ->카카오 로그인 -> 웹서비스 사용

세션 있을때 루트 : 카카오로 로그인하기 버튼 -> 웹서비스 사용)

 

모바일에서는 앱을 완전히 껐다 켜도 로그인이 되어 있는 상태입니다.

(ex. 카카오톡 내부 브라우저로 접속하면 카카오톡을 껐다 켜도 로그인이 되어 있습니다.)

그런데 밤 12시만 되면 로그인하라고 뜹니다.

 

하루가 지나도 계속 자동 로그인이 되도록 하고 싶은데요.

어느 부분을 고치면 좋을까요?? 웹잘알님들 부탁드립니다.

 

혹시 몰라 현재 common.php에 저장되어 있는 자동 로그인 부분도 올립니다.

 

// 자동로그인 부분에서 첫로그인에 포인트 부여하던것을 로그인중일때로 변경하면서 코드도 대폭 수정하였습니다.
if ($_SESSION['ss_mb_id']) { // 로그인중이라면
    $member = get_member($_SESSION['ss_mb_id']);

    // 차단된 회원이면 ss_mb_id 초기화
    if($member['mb_intercept_date'] && $member['mb_intercept_date'] <= date("Ymd", G5_SERVER_TIME)) {
        set_session('ss_mb_id', '');
        $member = array();
    }
    //탈퇴한 회원이 계속 로그인되서 바꿈
    else if ($member['mb_leave_date'] && $member['mb_leave_date'] <= date("Ymd", G5_SERVER_TIME)) {
        set_session('ss_mb_id', '');
        $member = array();
        alert('탈퇴한 아이디이므로 접근하실 수 없습니다.');
    }else {
        // 오늘 처음 로그인 이라면
        if (substr($member['mb_today_login'], 0, 10) != G5_TIME_YMD) {
            // 첫 로그인 포인트 지급
            insert_point($member['mb_id'], $config['cf_login_point'], G5_TIME_YMD.' 첫로그인', '', $member['mb_id'], G5_TIME_YMD);

            // 오늘의 로그인이 될 수도 있으며 마지막 로그인일 수도 있음
            // 해당 회원의 접근일시와 IP 를 저장
            $sql = " update {$g5['member_table']} set mb_today_login = '".G5_TIME_YMDHIS."', mb_login_ip = '{$_SERVER['REMOTE_ADDR']}' where mb_id = '{$member['mb_id']}' ";
            sql_query($sql);
        }
    }
} else {
    // 자동로그인 ---------------------------------------
    // 회원아이디가 쿠키에 저장되어 있다면 (3.27)
    if ($tmp_mb_id = get_cookie('ck_mb_id')) {

        $tmp_mb_id = substr(preg_replace("/[^a-zA-Z0-9_]*/", "", $tmp_mb_id), 0, 20);
        // 최고관리자는 자동로그인 금지
        if (strtolower($tmp_mb_id) != strtolower($config['cf_admin'])) {
            $sql = " select mb_password, mb_intercept_date, mb_leave_date, mb_email_certify from {$g5['member_table']} where mb_id = '{$tmp_mb_id}' ";
            $row = sql_fetch($sql);
            $key = md5($_SERVER['SERVER_ADDR'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'] . $row['mb_password']);
            // 쿠키에 저장된 키와 같다면
            $tmp_key = get_cookie('ck_auto');
            if ($tmp_key === $key && $tmp_key) {
                // 차단, 탈퇴가 아니고 메일인증이 사용이면서 인증을 받았다면
                if ($row['mb_intercept_date'] == '' &&
                    $row['mb_leave_date'] == '' &&
                    (!$config['cf_use_email_certify'] || preg_match('/[1-9]/', $row['mb_email_certify'])) ) {
                    // 세션에 회원아이디를 저장하여 로그인으로 간주
                    set_session('ss_mb_id', $tmp_mb_id);

                    // 페이지를 재실행
                    echo "<script type='text/javascript'> window.location.reload(); </script>";
                    exit;
                }
            }
            // $row 배열변수 해제
            unset($row);
        }
    }

    //게스트 아이디에 세션 부여하기
    else{
        $guest_id = get_session('guest_id');

        if (!$guest_id) {
            $result=mt_rand();
            set_session('guest_id',$result);
        }
    }
    // 자동로그인 end ---------------------------------------
}

이 질문에 댓글 쓰기 :

답변 1

1. 다음의 소스를 파일을 하나 만들어서 로그인한후 체크해보세요

<?

include "_common.php";

echo get_cookie('ck_mb_id');

echo get_session('ss_mb_id', '');

?>

만일 다음날에 확인해서 쿠키가 없으면 브라우즈 문제
쿠키는 있는데  세션이 없으면 서버설정 문제같습니다.

그래도 자정에 리셋되는것은 좀 이상하긴 하네요. 

 

답변 주셔서 감사합니다! 확인한 결과 쿠키값이 로그아웃할때 계속 없어져 자동로그인이 되지 않았습니다.
모바일의 경우 저혼자 예상하기로는 카카오톡 내부 브라우저의 세션은 왜인지 모르지만... 앱이 꺼질때가 아니라 매일 12시마다 삭제되는 것이 아니었을까 싶습니다.
현재는 쿠키값을 없애는 부분을 지워 자동로그인이 잘되고 있습니다! 다시 한번 답변주셔서 감사합니다.

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

회원로그인

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