이 에러는 이전에 확인한 적 있습니다. 티켓팅 시스템에서 검색을 해보았습니다.
다음과 같은 조건이 충족될 때 발생합니다.
require activation이true로 설정되어 있을 때- 특정 이메일 주소를 가진 Discourse 사용자 U1이 있고, 외부 ID A가 있을 수 있을 때
- 동일한 이메일 주소를 가진 DiscourseConnect 제공자 측 사용자 U2가 있고, 외부 ID가 다를 때 (B)
사용자가 로그인하면 Discourse는 외부 ID B를 가진 사용자가 있는지 확인합니다. 해당 사용자는 존재하지 않습니다.
정상적으로 Discourse는 다음 단계로 이메일 주소를 기준으로 매칭을 수행하지만, require activation이 설정되어 있어 이메일 주소가 신뢰할 수 없는 것으로 간주됩니다. 따라서 이 단계를 건너뛰고 사용자 U1과 연결되지 않습니다. 그렇게 되면 계정 탈취가 가능해질 수 있기 때문입니다.
따라서 Discourse는 새 사용자를 생성하기로 결정합니다. 그러나 해당 이메일 주소로 사용자 U1이 이미 존재하기 때문에 이 과정이 실패합니다.
이메일 주소가 존재하지만 신뢰할 수 없는 이메일인 경우 더 나은 에러 메시지가 표시되면 좋겠습니다. 또한 왜 일반적인 Rails 에러가 표시되는지 확실하지 않습니다.
해결 방법:
- DiscourseConnect 제공자 측의 이메일 주소가 인증되어 신뢰할 수 있다면,
require activation을false로 설정하세요.
또는 - 사용자 U1의 외부 ID를 B로 변경하세요
또는 - 사용자 U1의 이메일 주소를 다른 것으로 변경하세요
"the change you wanted was rejected"라는 텍스트를 추가하여 이 에러를 검색할 때 해당 토픽이 찾히도록 했습니다.