라이믹스 첫 설치시 user_id 를 사용함에도 불구하고 정상적으로 로그인이 안되는 문제 고침.

첫 설치시 아이디 사용이 이메일 + 전화번호 + user_id 항목을 모두 사용할 수 있습니다.

근데 문제는 사용자가 전화번호가 아니라 유저아이디를 정상적으로 입력하였음에도 불구하고 입력한 정보가 아니라는 경우가 발생됩니다.

보통 "abc1234" 이라는 계정을 사용하게되면 member.controller.php 2176줄안에 걸려 매칭을 시작하게 되고 아이디가 preg_replace('/[^0-9]/', '', $user_id); 코드의 의해 1234 으로 변환되기에 실제로 member_info를 찾을 수 없으므로 에러가 발생되게 됩니다.

이 패치는 전화번호도 사용하며 아이디까지 같이 사용할 경우 전화번호로 들어갔을때 전화번호를 찾을 수 없는 경우 유저아이디를 통해서 한번 더 검사하여 로그인을 진행할 수 있게 해줍니다.
This commit is contained in:
BJRambo 2022-10-18 06:20:19 +09:00
parent d2347d4208
commit 7a4f8164ac

View file

@ -2198,11 +2198,15 @@ class memberController extends member
$phone_country = Rhymix\Framework\i18n::getCountryCodeByCallingCode($phone_country);
}
$user_id = preg_replace('/[^0-9]/', '', $user_id);
$member_info = MemberModel::getMemberInfoByPhoneNumber($user_id, $phone_country);
$user_phone_number_id = preg_replace('/[^0-9]/', '', $user_id);
$member_info = MemberModel::getMemberInfoByPhoneNumber($user_phone_number_id, $phone_country);
if(!$member_info || strtolower($member_info->phone_number) !== $user_id)
{
return $this->recordLoginError(-1, 'invalid_user_id');
$member_info = MemberModel::getMemberInfoByUserID($user_id);
if(!$member_info || strtolower($member_info->user_id) !== strtolower($user_id))
{
return $this->recordLoginError(-1, 'invalid_user_id');
}
}
}
elseif(!$config->identifiers || in_array('user_id', $config->identifiers))