재현 방법
/my/messages로 이동합니다.
- "새 메시지"를 클릭합니다.
- 기존 사용자와 연결되지 않은 이메일 주소를 입력합니다.
- 메시지를 작성하고 전송합니다.
이메일이 전송되고 스테이징된 사용자가 생성됩니다.
- 관리자 패널에서 사용자를 활성화합니다.
a. 제 경우, 사이트에서 새 계정에 대한 승인이 필요하므로 사용자를 승인해야 했습니다. 이것이 보편적인지 확실하지 않습니다.
- 사용자가 이메일을 받습니다:
…에서 승인되었습니다.
…에서 직원이 귀하의 계정을 승인했습니다.
이제 에 로그인하여 새 계정에 액세스할 수 있습니다.
- 사용자가 이메일에 지시된대로 URL로 이동합니다.
기대 결과
사용자가 로그인할 수 있습니다
관찰된 결과
-
로그인 대화상자에서 이메일 주소를 입력하고 "비밀번호를 건너뛰고 로그인 링크를 보내 주세요"를 선택하면 "해당하는 계정이 없습니다…"라는 메시지가 표시됩니다.
-
"비밀번호를 잊으셨나요?"를 클릭한 후 "비밀번호 재설정"을 클릭하면 "해당하는 계정이 없습니다…"라는 메시지가 표시됩니다.
-
사용자는 해당 이메일 주소로 새 계정을 만들 수 있지만(적어도 제 테스트에서는) 이렇게 하면 사용자가 비활성화 상태로 돌아가고 “새 계정 확인” 이메일이 전송됩니다. 이미 "승인되었습니다"라고 통보받은 후에 기대할 수 있는 결과가 아닙니다…
추가 보너스 문제: 이 문제를 처음 발견했을 때 Discourse에서 보낸 메시지에는 초대 링크가 포함되어 있었습니다. 사용자는 해당 초대 링크를 사용할 수 없었습니다:
초대 링크 없이 문제를 재현했기 때문에 재현 과정에서 이를 언급하지 않았지만, 계정들이 어떤 이상한 상태에 놓이게 되었는지를 파악하는 데 도움이 될 수 있는 또 다른 단서인 것 같아 여기에 언급합니다.
사용자 관리 페이지를 통해 스테이징(staged) 사용자를 활성화할 수 있다는 점이 흥미롭네요. 스테이징 사용자는 로그인할 것으로 예상되지 않으므로, 그들을 활성화할 수 있다는 것은 논리적으로 맞지 않습니다. 스테이징 사용자는 계정을 생성하기 위해 사이트에 방문함으로써
를 실제 사용자로 전환할 수 있으며, 그렇게 되면 이전에 이메일로만 참여했던 모든 메시지에 대한 접근 권한을 얻게 됩니다.
따라서… 여러분에게 드리는 첫 번째 답변은 그렇게 하지 않는 것입니다.
사이트에 누군가를 초대할 때는 이메일을 통해 스테이징 사용자를 생성하는 방식이 아니라, 일반적인 방법으로 초대하시면 됩니다.
하지만 다른 분들도 이 문제를 겪을 수 있으므로, 이 동작을 방지할 수 있는 방법을 찾아볼 수도 있겠습니다. 제 사이트에서 간단히 테스트를 해보겠습니다.
1개의 좋아요
네, 제 사이트에서 이 문제를 재현할 수 있었습니다. 실제로 스테이징된 사용자를 활성화할 수 있었는데, 이는 올바른 동작이 아닙니다. 좋은 지적 감사합니다!
2개의 좋아요
맞는 말씀이네요!
스테이징 상태의 사용자(활성화되지 않은 사용자)의 경우, 이것이 잘 작동함을 확인했습니다. 원래 메시지에 이어 해당 이메일 주소로 직접 초대(즉, "이 이메일 주소로 제한"을 선택한 후 “초대 이메일 보내기” 버튼을 클릭)를 보냈을 때, 그들은 초대 링크를 클릭하여 계정을 만들 수 있었습니다.
하지만 활성화된 스테이징 사용자에게는 이렇게 할 수 없습니다. 그 경우, 해당 이메일 주소가 이미 사용자 계정에 연결되어 있어 초대 시도가 실패합니다.
그러나 스테이징 사용자는 절대 활성화될 수 없으므로, 이는 문제가 되지 않아야 합니다 
물론 이것은 "N회 사용 제한"이 설정된 초대였습니다. 초대 링크 사용 가능성에 차이가 있는지 확실하지는 않지만, 지금까지 발견한 내용을 고려할 때, 만약 제가 이미 계정을 활성화하지 않았다면 그 초대 링크는 정상적으로 작동했을 것으로 추정됩니다.
1개의 좋아요