“이메일로 로그인”이 “이메일 주소 숨기기” 활성화 시 잘못된 문자열로 전환됨

재현 방법:

  1. 기본적으로 비활성화되어 있으며, *“회원가입 및 비밀번호 찾기 과정에서 특정 이메일 주소로 계정이 존재한다는 것을 사용자에게 알리지 않습니다.”*라고 설명되어 있는 사이트 설정인 hide email address taken을 활성화합니다.

  2. 새로운 브라우저 세션에서 :email: 이메일로 로그인을 시도하고, codinghorror과 같은 잘못된 사용자 이름을 입력합니다.

예상 동작

다음 문자열 중 하나의 오류 메시지 텍스트가 표시되어야 하며, 계정의 존재 여부를 노출하지 않아야 합니다.

js.email_login.complete_email:

codinghorror@example.com에 해당하는 계정이 있다면, 곧 로그인 링크가 포함된 이메일을 받게 됩니다.

js.email_login.complete_username:

codinghorror에 해당하는 계정이 있다면, 곧 로그인 링크가 포함된 이메일을 받게 됩니다.

실제 동작

일치하는 계정이 없었음에도 불구하고, 오류 메시지 텍스트가 일치하는 계정을 찾았다고 잘못 표시됩니다.

js.email_login.complete_email_found:

codinghorror@example.com에 해당하는 계정을 찾았습니다. 곧 로그인 링크가 포함된 이메일을 받게 됩니다.

js.email_login.complete_username_found:

사용자 이름 codinghorror에 해당하는 계정을 찾았습니다. 곧 로그인 링크가 포함된 이메일을 받게 됩니다.

코멘트

비밀번호 재설정 과정에서는 올바르게 작동하지만, 이메일 로그인 워크플로우에도 동일한 로직이 적용되어야 할 것 같습니다.

2개의 좋아요

이것을 버그라고 보지 않습니다. 동작 방식은 위에서 설명한 것과 정확히 일치합니다.

하지만 다른 문구가 있다면 이 시나리오에서 해당 문구를 사용해야 합니다 @eviltrout

1개의 좋아요

혼란을 드려 죄송합니다. 인식된 버그는 hide email address taken(이메일 주소 사용 여부 숨기기)이 활성화되어 있을 때(그리고 오직 그 경우에만) 이메일 기반 로그인에 일치하지 않는 값을 입력하면 발생하는 것입니다.

의도적으로 모호하게 작성된 js.email_login.complete_email 및 js.email_login.complete_username 문자열을 표시해야 함에도 불구하고, 대신 js.email_login.complete_email_found 및 js.email_login.complete_username_found 문자열을 사용하여 오탐(false positive)을 표시합니다.

사이트 설정이 비활성화되어 있는 경우(기본값)에는 “일치하는 항목을 찾을 수 없음” 문자열이 올바르게 표시됩니다.

4개의 좋아요

이렇게 하면 수정될 것입니다:

8개의 좋아요

네, 이제 올바르게 보입니다. 감사합니다! :trophy:

5개의 좋아요