FuelPHP でログイン機能制作
MVCフレームワーク「FuelPHP」でログイン機能を制作。
* PHP開発環境がない場合は「
AlmaLinux8.6, PHP8.1, MySQL8, Apache
」で LAMP 環境を構築後に実施
* FuelPHP のインストールは「FuelPHPで掲示板制作」を参照
練習1: ログイン機能(Auth)パッケージ設定
▼ FuelPHP 設定ファイルに auth 情報を設定
/fuel/app/config/config.php
/**************************************************************************/
/* Always Load
/**************************************************************************/
'always_load' => array(
'packages' => array(
'auth',
),
),
▼ auth 設定ファイルをアプリケーション設定ディレクトリにコピー
▼ コピーファイル(2ファイル)
- /fuel/packages/auth/config/auth.php
- /fuel/packages/auth/config/simpleauth.php
▼ 移動先ディレクトリ
- /fuel/app/config/
▼ ユーザー認証用のテーブルの作成
▼ oil のインストール
# curl https://get.fuelphp.com/oil | sh
▼ oil を実行するプロジェクトに移動
# cd /var/www/fuel.sunabird.local/
▼ oil を実行しテーブル作成
# oil refine migrate --packages=auth
▼ 初期ユーザーの作成
# oil console
Fuel 1.8 - PHP 7.3.3 (cli) (Mar 5 2019 13:50:38) [Linux]
>>> Auth::create_user('root', 'password', 'fuel@sunabird.local');
1
>>> exit;
oil が正しく動作せずテーブルが自動生成できない場合...
下記リンクから simpleauth.dump ファイルをダウンロードします
https://php.sunabird.com/img/auth01/simpleauth.dump
C:\www\fuel.sunabird.local\ ディレクトリにダウンロードした simpleauth.dump ファイルをコピーします
MySQL fueldb にテーブルデータをリストアします
# mysql -u root -p fueldb < /var/www/fuel.sunabird.local/simpleauth.dump
初期ユーザー情報 ID:root, PASS:password, MAIL:fuel@sunabird.local
作成されたテーブルを確認
MySQL にログイン
# mysql -u root -p
FuelPHP の DB fueldb に移動
mysql> use fueldb;
fueldb 内のテーブル確認
mysql> show tables;
+---------------------+
| Tables_in_fueldb
+---------------------+
| migration
| t_comment
| users
| users_clients
| users_providers
| users_scopes
| users_sessions
| users_sessionscopes
+---------------------+
users, users_.... ユーザー関係と思われる6つのテーブルを確認
練習2: ログイン機能の作成
設定した simpleauth パケージを使用してログイン機能を作成します
ログイン用の Controller クラスファイル作成
(新規作成)
C:\www\fuel.sunabird.local\fuel\app\classes\controller\auth.php
ログイン用の View ファイルを作成します
(新規作成)
C:\www\fuel.sunabird.local\fuel\app\views\auth\index.php
ログイン成功時に遷移する View ファイルを作成します
(新規作成)
C:\www\fuel.sunabird.local\fuel\app\views\auth\ok.php
ブラウザからアクセスします
http://fuel.sunabird.local/auth/index
登録されていないユーザーで「ログイン」した場合、エラーメッセージ表示
登録されているユーザーで「ログイン」した場合、ログイン成功画面へ遷移
課題
課題1:ログアウト機能の追加 課題2:ログインしていない場合(ログアウト)、直接「ログイン成功画面(http://fuel.sunabird.local/auth/ok)」にアクセスした場合、ログインフォーム画面へリダイレクト