포럼
1.4.5.x 대 로그인유지 풀림현상 해결방법
2013.04.29 17:55
아래에 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 설치하신 분이 테스트 해 보시고 알려주세요.
댓글 4
-
류중근
2013.06.06 12:27
-
맥플러스
2013.06.10 02:24
제 닉네임으로 검색하면 1.7.x 대 버젼에서 수정 방법도 있습니다. 1.7.x 버젼에선 이걸 해결 할 수 있는 방법이 두가지 있습니다. 위의 내용대로 1.4.x 대처럼 수정해도 되고 query 파일을 수정해도 됩니다. 검색해 보세요.
-
푸시아
2013.06.06 14:38
좋은 팁이네요 -
맥플러스
2013.06.10 02:31
감사합니다.
1.7.3.4 버전이라서 그런지 수정해야 할 내용의 줄이 다르긴 했지만, 해당 단어로 검색하니 그냥 찾을 수 있었답니다.
그나저나 이 정보 매우 고맙습니다.
그것 제로보드를 열어 놓고 오랜 시간 다른 곳에 머물렀다가 다시 들어와 보면 어느덧 로그인이 풀린 것처럼 보이더라고요.
실제론 풀리지도 않았는데 아이디란이나 비밀번호 난이 비어있으니 로그인이 풀린 거로 봤을 수밖에요…
좀 전에 이 정보를 토대로 두 라인 모두를 수정해서 올렸답니다.
제로보드 여덟아홉 개를 관리하고 있는데 모두가 그런 건 아니고 특정한 홈피(비즈프리에 깔린 제로보드 중 하나)에서 그랬거든요.
그 결과가 어떻게 나올지 당장은 알 길도 없기에 저도 아직은 궁금하지만, 틀림없이 좋은 결과가 나올 걸로 믿어 의심치 않습니다.
이렇게도 멋지고 좋은 정보 내주어 고맙네요.
그럼 건강하시길…
매우 고맙습니다.