質問: CakePHP3を使っています。 Userテーブルなどに、ユーザーのログインパスワードを保存しますが、 その時にCakePHPのパスワードハッシュの機能を使ってDBにはハッシュ化されたパスワードが保存されるようにしています。 ユーザー情報を編集する時、 DBからfindしたデータをビュー側にセットし、 ビュー側では下記のように表示させます。 ``` $this->Form->control('username') $this->Form->control('password') ``` この時、編集フォームにはハッシュ化された状態のパスワードが入っています。 usernameだけを編集して、送信した場合にハッシュ化したパスワードが送信されてパスワードが上書きされてしまうと思うのですが、 どのように扱うのが良いのでしょうか? 私は通常の編集時はパスワードを編集できないようにする。 パスワードの変更のみを別のフォームに分ける。 ということしか思いつきませんでした。 ユーザー情報としては、 1サービスを利用しているユーザーの情報 2管理画面などのadminユーザーの情報 の2種類で、どのような情報を扱うかによっても変わると思うのですが・・・ どのように扱うのが良いか、ご教授頂けますと幸いです。 よろしくお願いいたします。
回答: ありがとうございます。 たしかに、入力がなければ更新しないようにすれば良さそうですね! >>サーバー側でも正しいパスワードが分からない とありますが、入力された値をハッシュ化して、保存されているパスワードとあっているか確かめています。 (ユーザーがログインするときなどはそうしてパスワードを認証しています) なので、私が質問したパスワードを戻す〜というのはいつものログイン認証て使うのと同様にパスワードをチェックするような意味合いでした。 ただ、ほかの情報と一緒に送信するしか頭になかったので、空の値で送信して更新かそのままかをチェックするのは思いつきませんでした。 とても勉強になりました。 ありがとうございました!!m(__)m