FuelPHP のコマンドラインで利用者アカウントの作成・パスワード変更・リセット方法
- 2017年05月27日
- FuelPHP
- FuelPHP, oil, SimpleAuth
FuelPHP では oil や migration, SimpleAuth といった仕組みがあるのでユーザー認証まわりは実装しやすいのですが、初期状態ではログインユーザーがいないためログインできません。
よく開発当初だけ oil のコンソールを使ってコマンドラインで利用者を追加するのですが、すぐ忘れるので書いておきます。
アカウントの追加 (Xampp 編)
以下は Windows の Xampp 環境で行ないました。(Xampp が C:\xampp にインストールされている場合を想定していますので、異なる場合は読み替えてください。)
1 2 |
C:\project\path>c:\xampp\php\php oil console Fuel 1.8 - PHP 7.0.15 (cli) (Jan 17 2017 13:41:44) [WINNT] |
これでコンソールに入ります。ここで Auth::create_user
を実行します。
1 2 3 |
>>> Auth::create_user('admin01', '****パスワード文字列****', 'admin01@example.com'); 1 >>> exit |
1という結果が出たらデータベースのログインユーザーのテーブルにレコードが追加されています。
パスワードの変更
コンソール上から Auth::change_password
を使ってパスワードの変更も可能です。
1 2 |
>>> Auth::change_password('****旧パスワード****', '====新しいパスワード===', 'admin01'); false |
このコマンドを使うケースは旧パスワードもわかっている場合に限ります。
パスワードをリセットしたいとき
さて、旧パスワードがわからない場合は Auth::change_password
では変更できません。また、パスワードがわかっていても config/simpleauth.php の login_hash_salt の値を後から変えるとパスワード変更できなくなります。以前のパスワードを指定しても salt が違っているためデータベースに格納されたハッシュ値と合わなくなるためです。
1 2 |
>>> Auth::change_password('****旧パスワード****', '====新しいパスワード===', 'admin01'); false |
FuelPHP にはランダムなパスワードに設定する Auth::reset_password
というメソッドが用意されています。ただし指定したパスワードには設定できません。
そこで、Auth::change_password
と Auth::reset_password
を組み合わせて使います。まずランダムなパスワードにリセットして、次にランダムなパスワードを使って指定したパスワードに再設定します。
1 2 3 4 |
>>> Auth::reset_password('admin01'); ****ランダムに生成されたパスワード**** >>> Auth::change_password('****ランダムに生成されたパスワード****', '====新しいパスワード====', 'admin01'); true |
開発時には便利な機能だと思います。
ITエンジニア募集中!
キュアコード株式会社はITエンジニアを募集しております。少人数の職場なので、上流・下流やサーバー・クライアント対応の垣根なく、あなたの強みを活かしながら いろいろなことにチャレンジ可能です。エンジニアとしての未経験の方、経験が少ない方も歓迎しています。
下記よりITエンジニア募集の採用情報をご覧いただけます。