「メールアドレスを非表示」を有効にすると、「メールでログイン」が誤った文字列に切り替わる

再現手順:

  1. サイト設定 hide email address taken を有効にします(通常は無効化されており、「サインアップ時およびパスワード再設定フォームで、指定されたメールアドレスを持つアカウントが存在することをユーザーに通知しない」と説明されています)。

  2. 新しいブラウザセッションから、:email: にメールアドレスを入力し、無効なユーザー名(例:codinghorror)を指定してログインを試みます。

期待される動作

アカウントの存在の有無を明かさない、以下のいずれかの文字列からのエラーメッセージが表示されます。

js.email_login.complete_email:

codinghorror@example.com に一致するアカウントがある場合、間もなくログインリンクを含むメールが届きます。

js.email_login.complete_username:

codinghorror に一致するアカウントがある場合、間もなくログインリンクを含むメールが届きます。

実際の動作

エラーメッセージが、実際には一致が存在しない場合でも、一致があったかのように誤って表示されます。

js.email_login.complete_email_found:

codinghorror@example.com に一致するアカウントが見つかりました。間もなくログインリンクを含むメールが届きます。

js.email_login.complete_username_found:

ユーザー名 codinghorror に一致するアカウントが見つかりました。間もなくログインリンクを含むメールが届きます。

コメント

「パスワード再設定」のプロセスでは正しく機能していますが、メールによるログインのワークフローでも同様のロジックが適用されるべきであるようです。

「いいね!」 2

[quote=“downey, post:1, topic:143432”]
サインアップ時およびパスワード再設定フォームにおいて、特定のメールアドレスでアカウントが存在することをユーザーに通知しないでください。[/quote]
これはバグではないと思います。上記の通り、動作は期待通りです。

ただし、他のコピーがある場合は、このシナリオでそれを使用すべきです @eviltrout

「いいね!」 1

混乱させてしまったらすみません。認識されているバグは、hide email address taken が有効に設定されており、かつメールアドレスベースのログインで一致しない値が入力された場合(のみ)に発生します。

意図的に曖昧な js.email_login.complete_email および js.email_login.complete_username の文字列を表示する代わりに、誤って js.email_login.complete_email_found および js.email_login.complete_username_found の文字列を使用して、誤った肯定(false positive)を表示してしまいます。

サイト設定が無効(デフォルト)の場合は、正しく「一致なし」の文字列が表示されます。

「いいね!」 4

これで解決するはずです:

「いいね!」 8

はい、これで正しいようです。ありがとうございます!:trophy:

「いいね!」 5