Open kabo2468 opened 1 year ago
これで正しい気がする
例えば存在しないメールアドレスとか入力すればユーザー名確保し放題みたいになりそう
少なくともメールアドレスの確認が終わるまではユーザー名は使用されてないから「使用されています」エラーを返すのはおかしい気がする
少なくともメールアドレスの確認が終わるまではユーザー名は使用されてないから「使用されています」エラーを返すのはおかしい気がする
使用されようとしたのは事実かも
悪意のないユーザーたちがたまたま同じidで登録しようとした時登録の最終段階でただただ「問題が発生しました」とエラーが出るだけなのでOOBE的によくないと思う しかも、招待制のサーバーの場合招待コードが消費されてしまうため、登録を諦めてしまう可能性が高くなっちゃう
確保し放題の問題については、 メアド認証がrequiredの場合は登録が完了されてないpendingは一定時間後にexpireするようになると解決できる requiredではない場合は元から確保し放題なので問題なさそう
アカウント登録完了するまでユーザー名が使用できることを保証するべきだと思う
一番いいのはメール必須だからメール認証してからアカウントを登録させること でもこれはマイグレーションが必要になりそうなのですぐにはできないかも
すぐできるのは
メアド認証がrequiredの場合は登録が完了されてないpendingは一定時間後にexpireするようになると解決できる
みたいに例えば「24時間以内にメール認証して下さい」とかで無効にしていくのがいいかもしれない
💡 Summary
UserPendingのusernameがuniqueじゃないのと、signup時に確認してない。
🥰 Expected Behavior
Pendingなら他の人は登録できない。
🤬 Actual Behavior
usernameを横取りできてしまう。
📝 Steps to Reproduce
0.メールアドレス必須のサーバーである。 1.誰かがアカウント登録しようとする。 2.他の誰かが同じユーザー名でアカウント登録し、メール認証まで完了させる。 3.最初の人はそのユーザー名で登録完了できない。
📌 Environment
💻 Frontend