パスワードリセットページを書いています。
論理:
- ユーザーがpwを要求する
- / reset /に追加された一意の文字列(有効期限が切れます)を使用して電子メールに送信されます
$string
- コントローラのページにアクセスしたら、文字列がデータベースの文字列と一致するかどうかを確認します。一致する場合は、それをuserIdと一致させます。
- もしそうなら、私は彼らが彼らの新しいパスを入力することを許可します
- 彼らが同じコントローラーにPOSTし、混乱して2つの間違ったパスワードを入力すると、リセット文字列を含む元のURLが失われるため、データベースで更新するユーザーがわかりません。
私のオプション(私が考えることができる):
- セッションで文字列とユーザーIDを設定し、それをコントローラーで検索します(パスが正常にリセットされたら、必ずこれをクリアしてください)
- 上記のステップ4では、フォームの非表示の入力フィールドにユーザーのIDを追加し、それをPOSTして、それがどのユーザーであるかを確認します。