[XE] 1.4.5.x 대 로그인유지 풀림현상 해결방법
아래에 1.7.x, 1.5.x 버젼에서 PC와 스마트폰 (실은 스마트폰이 아닌 환경이 다른 PC에서도 똑같은 현상 발생)을 번갈아 가며 자동로그인하면 로그인이 그 전 기기에서 풀려버리는 현상에 대한 해결 방법을 제시했는데, 이번에는 1.4.5.x 버젼에서 해결 방법입니다.
xe.1.4.5.10 버젼을 기준으로 설명드리겠습니다. 만약 버젼이 다를 경우 아래 함수 이름을 확인하시고 그 함수내에서 해당되는 줄을 찾아보세요.
/modules/member/member.controller.php에서 아래 두 줄을 수정하시면 됩니다.
1398줄 (doAutologin 함수 내)
수정 전 : $key = md5($user_id.$password.$_SERVER['REMOTE_ADDR']);
수정 후 : $key = md5($user_id.$password);
1476줄의 (doLogin 함수 내)
수정 전 : $autologin_args->autologin_key = md5(strtolower($user_id).$member_info->password.$_SERVER['REMOTE_ADDR']);
수정 후 : $autologin_args->autologin_key = md5(strtolower($user_id).$member_info->password);
이렇게 하면 autologin 테이블에 ip 주소를 뺀 아뒤+암호로만 된 key를 생성합니다. 따라서 IP주소가 다른 기기에서 자동로그인을 해도 그 전 기기에서 자동로그인이 풀리는 건 문제를 해결해 줄 것이라 생각됩니다.
단지 제가 xe.1.4.5.10 설치를 하지 않아 1.7.3.x 기준으로 문제가 되는 로직을 파악한 내용으로 분석한 겁니다. 따라서 직접 테스트는 해 보지 않았으나 될 거라 확신하나만 1.4.x 설치하신 분이 테스트 해 보시고 알려주세요.