Laravelでよくお世話になるAuth。php artisan make:auth
と叩くだけで必要なものがほぼ全部生成されるので便利ですよね。
しかし、開発環境でユーザーのパスワードをド忘れした場合どのようにしたら良いのでしょうか。
tinkerを起動する
作業用ディレクトリ上でphp artisan tinker
を叩く。
$ php artisan tinker
(2018/10/29 追記) モデルを使って直接書き換える手段をコメント欄にていただきました。(Thx! @hokutoasari) 圧倒的に簡単ですね。
もしメールアドレスがわかっている場合はwhereでメールアドレスを使えばOKです。
>>> \App\User::where('email','at.mattenn@gmail.com')->update(['password' => \Hash::make('nyan')]);
もう何もかも忘れてしまってどうしようもない場合は下の取り消し線を引いた方法を使ってください。
Hashでパスワードハッシュを作る
(ハッシュは例です)
Psy Shell v0.8.18 (PHP 7.2.6 — cli) by Justin Hileman
>>> \Hash::make('nyaaaaaaaan');
==> "$3y$10$HnhrbrvsxZe6409rOgOiA37.xv7BU1LdUpJNntKH0TOCOC0A.fOXkKBfIMK"
データベースに突っ込む
どこのご家庭にもあるHeidiSQLやSequel Proを使ってデータベース内のテーブルに突っ込む。デフォルトはusersテーブルです。
注意
このパスワードハッシュは本番環境では使うことができません。なぜなら入力されたパスワードは.env
のAPP_KEY
と共にハッシュ化されるので、本番用と開発用ではハッシュも異なるからです。
もし本番環境でも同じパスワードハッシュが使えた場合、それはそれで問題なので別のAPP_KEYを設定しましょう。