2018/10/12
laravel5.2からマルチ認証がデフォルトで備わっています。
マルチ認証とは、2つ以上の認証(ユーザー認証・管理者認証)を1つのサイトで実現する方法です。
今回は通常のユーザー認証のみセットアップします。
目標
Laravel5.2にデフォルトでついている認証画面の作成。
前提条件
パスワードリセット機能はメール送信機能を使います。
Laravelの設定(.envファイル)でメール送信ができるようにしておきます。
進め方
【1】認証機能の自動生成
【2】DBのテーブル作成
【1】認証機能の自動生成
認証機能の自動生成はartisanコマンドで用意されています。
php artisan make:auth
上記のartisanコマンドを実行すると以下の機能ができます。
- 新規登録
- ログイン
- ログアウト
- バリデート
- パスワードリセット
- Remember Me(ログイン状態維持)
- ログインロック(n回ログインに失敗したらn秒間ログインできない)
退会処理はないので自作します。
ルーティングも自動的にroutes.phpに書き込んでくれます。
Route::auth(); Route::get('/home', 'HomeController@index');
authメソッドは、Illuminate\Routing\Router.phpに記述されています。
authメソッドが何をしているか確認します。
public function auth() { // Authentication Routes... $this->get('login', 'Auth\AuthController@showLoginForm'); $this->post('login', 'Auth\AuthController@login'); $this->get('logout', 'Auth\AuthController@logout'); // Registration Routes... $this->get('register', 'Auth\AuthController@showRegistrationForm'); $this->post('register', 'Auth\AuthController@register'); // Password Reset Routes... $this->get('password/reset/{token?}', 'Auth\PasswordController@showResetForm'); $this->post('password/email', 'Auth\PasswordController@sendResetLinkEmail'); $this->post('password/reset', 'Auth\PasswordController@reset'); }
【2】DBのテーブル作成
Laravel5.2ではデフォルトでusersテーブルとpassword_resetsテーブルを作成するマイグレーションファイルがあります。
これをそのまま認証用として利用します。
artisanコマンドでマイグレーションを実行します。
php artisan migrate
PhpMyAdminで作成されたテーブルを確認します。
users テーブル
password_resets テーブル
これで認証画面の完成です。
{ドメイン}/login にアクセスします。
ユーザー側の認証画面は以上になります。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。