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

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 を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-チュートリアル