SSO 제공자로부터 전달되는 external_id는 변경되지 않는 것으로 기대됩니다. 가능하면 사용자의 external_id 값을 변경하는 것을 피해야 합니다.
SSO 매개변수 require_activation을 true로 설정하지 않는 한, Jay가 언급했듯이 모든 SSO 기록을 삭제할 수 있습니다. 이렇게 하려면 사이트 콘솔에 진입하여 다음을 실행하세요:
SingleSignOnRecord.destroy_all
이 작업을 수행하기 전에 SSO 페이로드에서 require_activation을 true로 설정하지 않고 있는지 확인해야 합니다. 이 매개변수가 설정되어 있다면, 사용자가 사이트에 다음 로그인할 때 이메일 주소 기반으로 사용자를 찾을 수 없습니다. 대신 로그인 시도를 할 때 오류가 발생합니다.
require_activation 매개변수가 true로 설정되어 있지 않다면, 사용자가 Discourse에 다음 로그인할 때 이메일 주소 기반으로 사용자를 찾을 수 있습니다. 이때 해당 사용자를 위한 새로운 SSO 기록이 생성됩니다. SSO 제공자 사이트와 Discourse 간에 사용자의 이메일 주소가 동기화되지 않은 경우, 사용자가 Discourse에 다음 로그인할 때 문제가 발생할 수 있습니다. 이러한 문제를 수정하는 방법에 대한 세부 사항은 여기에서 찾을 수 있습니다: Debug and fixing common DiscourseConnect issues.
위에서 게시한 명령을 실행할 계획이라면, 명령을 실행하기 전에 사이트 데이터베이스의 백업을 반드시 생성하세요. 문제가 발생하면 백업 파일을 복원할 수 있습니다.