Yii2使い方メモの続き。今回はログイン認証ができるまでです。
advanceのbackend (yii-application/backend/web)で、データーベースにユーザを登録してログインできるようにします。
以下の設定を使う前提です。
- データベース名: yii2db
- ユーザ名: admin
- password: admin123
- yii-applicationにadvancedのテンプレートをインストール
- http://localhost/yii で、yii-application/backend/webにアクセスできる
まず、データベース(MySQL)を設定します。
MySQLの設定
MySQLのコンソールから、使用するデータベースとユーザを作成して、ユーザにデータベースの操作をすべて許可しておきます。
mysql> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin123'; mysql> CREATE DATABASE yii2db CHARACTER SET utf8 COLLATE utf8_unicode_ci; mysql> GRANT ALL PRIVILEGES ON yii2db.* TO admin@localhost;
Yii2のデータベース設定
yii-application/common/config/main-local.php にデータベースとユーザの設定をします。
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=127.0.0.1;dbname=yii2db',
'username' => 'admin',
'password' => 'admin123',
'charset' => 'utf8',
],(注意) WindowsのMySQLに、Linuxから接続する場合は、localhostを127.0.0.1に変更する必要があります。
migrationを作成
migrationはyii2に用意されている、データベースのテーブルの作成や、レコードの追加などを簡易に行うための仕組みです。簡単なスクリプトを書くことで、様々なデータベース操作が行なえます。色々と便利なのですが、詳しい説明は省きます。後で書くかも。
ログインのためのデーターベース作成用のスクリプトは用意されていますので、そのデータベースにログイン用のユーザを追加するためのスクリプトを追加します。
$ ./yii migrate/create add_test_user Yii Migration Tool (based on Yii v2.0.25) Create new migration '/mnt/c/wamp64/www/yii-application/console/migrations/m190828_081441_add_test_user.php'? (yes|no) [no]:yes
作成されたm190828_081441_add_test_user.phpを編集します。
public function safeUp()
{
$this->insert('{{%user}}', [
'username' => 'admin',
'auth_key' => '',
'password_hash' => '$2y$13$CpOD8kNom8M.zZ7nJ9rYBOD3uTrnY/HFzvWOVkwabNDZwUiUgnTte',
'password_reset_token' => '',
'email' => 'hogehoge@yii.jp',
'created_at' => '2019-08-28 10:00:00',
'updated_at' => '2019-08-28 10:00:00',
]);
}テーブル作成と、ユーザ追加のスクリプトを実行します。
$ ./yii migration
そうして、http://localhost/yii/ にアクセスすると、ログイン画面が表示されて、

admin/admin123でログインすると、ホームページが表示されました。

めでたし、めでたし。