Laravel5.2認証機能(ユーザー側)について

2018/10/12

laravel5.2からマルチ認証がデフォルトで備わっています。

マルチ認証とは、2つ以上の認証(ユーザー認証・管理者認証)を1つのサイトで実現する方法です。

今回は通常のユーザー認証のみセットアップします。

 

目標

Laravel5.2にデフォルトでついている認証画面の作成。

 

前提条件

パスワードリセット機能はメール送信機能を使います。

Laravelの設定(.envファイル)でメール送信ができるようにしておきます。

メール送信機能の実装について

 

進め方

【1】認証機能の自動生成

【2】DBのテーブル作成

 

【1】認証機能の自動生成

認証機能の自動生成はartisanコマンドで用意されています。

1
php artisan make:auth

上記のartisanコマンドを実行すると以下の機能ができます。

  • 新規登録
  • ログイン
  • ログアウト
  • バリデート
  • パスワードリセット
  • Remember Me(ログイン状態維持)
  • ログインロック(n回ログインに失敗したらn秒間ログインできない)

退会処理はないので自作します。

ルーティングも自動的にroutes.phpに書き込んでくれます。

app/Http/routes.php
1
2
Route::auth();
Route::get('/home', 'HomeController@index');

authメソッドは、Illuminate\Routing\Router.phpに記述されています。

authメソッドが何をしているか確認します。

vendor/laravel/framework/src/Illuminate/Routing/Router.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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コマンドでマイグレーションを実行します。

1
php artisan migrate

PhpMyAdminで作成されたテーブルを確認します。

users テーブル

password_resets テーブル

これで認証画面の完成です。

{ドメイン}/login にアクセスします。

ユーザー側の認証画面は以上になります。

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-チュートリアル

【 転職体験談 】Webエンジニア35オーバーの僕が転職してみた
 
S