활성화된 단계별 사용자를 승인하면 로그인하라는 메시지가 표시되지만 실제로는 로그인이 되지 않습니다

재현 방법

  1. /my/messages로 이동합니다.
  2. "새 메시지"를 클릭합니다.
  3. 기존 사용자와 연결되지 않은 이메일 주소를 입력합니다.
  4. 메시지를 작성하고 전송합니다.

이메일이 전송되고 스테이징된 사용자가 생성됩니다.

  1. 관리자 패널에서 사용자를 활성화합니다.
    a. 제 경우, 사이트에서 새 계정에 대한 승인이 필요하므로 사용자를 승인해야 했습니다. 이것이 보편적인지 확실하지 않습니다.
  2. 사용자가 이메일을 받습니다:

…에서 승인되었습니다.

…에서 직원이 귀하의 계정을 승인했습니다.

이제 에 로그인하여 새 계정에 액세스할 수 있습니다.

  1. 사용자가 이메일에 지시된대로 URL로 이동합니다.

기대 결과

사용자가 로그인할 수 있습니다

관찰된 결과

  • 로그인 대화상자에서 이메일 주소를 입력하고 "비밀번호를 건너뛰고 로그인 링크를 보내 주세요"를 선택하면 "해당하는 계정이 없습니다…"라는 메시지가 표시됩니다.

  • "비밀번호를 잊으셨나요?"를 클릭한 후 "비밀번호 재설정"을 클릭하면 "해당하는 계정이 없습니다…"라는 메시지가 표시됩니다.

  • 사용자는 해당 이메일 주소로 새 계정을 만들 수 있지만(적어도 제 테스트에서는) 이렇게 하면 사용자가 비활성화 상태로 돌아가고 “새 계정 확인” 이메일이 전송됩니다. 이미 "승인되었습니다"라고 통보받은 후에 기대할 수 있는 결과가 아닙니다…

추가 보너스 문제: 이 문제를 처음 발견했을 때 Discourse에서 보낸 메시지에는 초대 링크가 포함되어 있었습니다. 사용자는 해당 초대 링크를 사용할 수 없었습니다:

초대 링크 없이 문제를 재현했기 때문에 재현 과정에서 이를 언급하지 않았지만, 계정들이 어떤 이상한 상태에 놓이게 되었는지를 파악하는 데 도움이 될 수 있는 또 다른 단서인 것 같아 여기에 언급합니다.

사용자 관리 페이지를 통해 스테이징(staged) 사용자를 활성화할 수 있다는 점이 흥미롭네요. 스테이징 사용자는 로그인할 것으로 예상되지 않으므로, 그들을 활성화할 수 있다는 것은 논리적으로 맞지 않습니다. 스테이징 사용자는 계정을 생성하기 위해 사이트에 방문함으로써 :sparkles:를 실제 사용자로 전환할 수 있으며, 그렇게 되면 이전에 이메일로만 참여했던 모든 메시지에 대한 접근 권한을 얻게 됩니다.

따라서… 여러분에게 드리는 첫 번째 답변은 그렇게 하지 않는 것입니다. :slight_smile: 사이트에 누군가를 초대할 때는 이메일을 통해 스테이징 사용자를 생성하는 방식이 아니라, 일반적인 방법으로 초대하시면 됩니다.

하지만 다른 분들도 이 문제를 겪을 수 있으므로, 이 동작을 방지할 수 있는 방법을 찾아볼 수도 있겠습니다. 제 사이트에서 간단히 테스트를 해보겠습니다.

1개의 좋아요

네, 제 사이트에서 이 문제를 재현할 수 있었습니다. 실제로 스테이징된 사용자를 활성화할 수 있었는데, 이는 올바른 동작이 아닙니다. 좋은 지적 감사합니다!

2개의 좋아요

맞는 말씀이네요!

스테이징 상태의 사용자(활성화되지 않은 사용자)의 경우, 이것이 잘 작동함을 확인했습니다. 원래 메시지에 이어 해당 이메일 주소로 직접 초대(즉, "이 이메일 주소로 제한"을 선택한 후 “초대 이메일 보내기” 버튼을 클릭)를 보냈을 때, 그들은 초대 링크를 클릭하여 계정을 만들 수 있었습니다.

하지만 활성화된 스테이징 사용자에게는 이렇게 할 수 없습니다. 그 경우, 해당 이메일 주소가 이미 사용자 계정에 연결되어 있어 초대 시도가 실패합니다.

그러나 스테이징 사용자는 절대 활성화될 수 없으므로, 이는 문제가 되지 않아야 합니다 :slight_smile:

물론 이것은 "N회 사용 제한"이 설정된 초대였습니다. 초대 링크 사용 가능성에 차이가 있는지 확실하지는 않지만, 지금까지 발견한 내용을 고려할 때, 만약 제가 이미 계정을 활성화하지 않았다면 그 초대 링크는 정상적으로 작동했을 것으로 추정됩니다.

1개의 좋아요