이메일 주소의 + 이후 텍스트가 고유성 검사에서 무시됨

재현 단계

  1. https://community.drownedinsound.com 에서 새 계정을 생성합니다.
  2. 사용자 이름에 + 기호가 포함된 Gmail 이메일 주소를 사용합니다. 예: jobloggs+discourse@gmail.com
  3. 로그아웃합니다.
    • 기호 뒤에 다른 텍스트가 있는 Gmail 이메일 주소를 사용하여 또 다른 계정을 생성합니다. 예: jobloggs+discobot@gmail.com

기대 결과
이메일로 새 사용자 가입 요청을 받게 됩니다.

실제 결과
jobloggs+discourse@gmail.com 이메일로 "계정이 이미 존재합니다"라는 메일을 받게 됩니다.

비고
가입 후에도 계정 존재 여부를 알리는 통지에 새 이메일 주소가 사용되지 않습니다. 예컨대 1월 6일 이전에는 이 사이트에서 이런 일이 발생하지 않았으며, Discourse가 이전에는 이러한 방식으로 동작하지 않았습니다. 그 이후로 사이트 업그레이드가 최소 한 번 이루어졌고, 그 이후부터 이 버그가 도입되었습니다.

이 문제는 normalize_emails 설정의 상태에 따라 이메일 주소에서 + 기호를 사용할 때 Discourse에서 HTTP/500 오류가 발생하는 것과 관련이 있을 수 있습니다:

확인해 주셔서 감사합니다. 말씀하신 대로 맞습니다. 업그레이드 과정에서 normalize_emails 설정이 변경되었고, normalize_emails가 설정된 상태에서 이미 + 기호를 사용한 이메일 계정이 있는 경우 버그가 발생하는 문제였습니다.

사용자가 + 기호가 포함된 이메일 주소로 변경을 시도할 때 발생하는 500 치명적 오류의 원인도 이 설정일 것 같습니다.

이미 그러한 계정이 존재하는 경우 활성화되어서는 안 되지 않을까요?