Laravel にユーザー認証機能を追加する

Laravelではユーザー認証機能(ログイン機能)が簡単に実装できます。本記事はユーザー認証機能の追加手順です。

プロジェクトで認証機能を有効にする

ビューテンプレートを作成する

プロジェクト配下でコマンドプロンプトから以下を実行します。

php artisan make:auth
  • \{Laravelプロジェクト}\resources\views\authディレクトリとファイルが生成されます
  • \{Laravelプロジェクト}\resources\views\layouts\app.blade.phpが生成されます
  • web.phpに以下のようなルート定義が追加されます。
Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

認証用のデータベースをマイグレートする

プロジェクト配下でコマンドプロンプトから以下を実行します。

php artisan migrate

以下のテーブルが追加されます。

  • migrations
  • password_resets
  • users

ユーザー登録をする

  1. ログイン画面でRegisterをクリック
    Laravelユーザー登録 ログイン画面はhttp://ホスト名/{Laravelプロジェクト}/public/homeでアクセスすれば表示されます。
  2. 各項目を入力してRegisterボタンをクリック Laravelユーザー登録

認証させる方法

ルーティングで認証させる

ルーターメソッドの後に->middleware('auth');を付けます。

Route::get("/add", "SampleController@add")->middleware('auth');

コントローラ単位で認証させる

コントローラクラスのコンストラクタに以下を記述します。

public function __construct() {
    $this->middleware('auth');
}

リダイレクト先

ログイン後や新規登録後のリダイレクト先を変更する方法です。

ログイン後のリダイレクト先

\{Laravelプロジェクト}\app\Http\Controllers\Auth\LoginController.phpの以下を変更します。

protected $redirectTo = '/home';

新規登録後のリダイレクト先

\{Laravelプロジェクト}\app\Http\Controllers\Auth\RegisterController.phpの以下を変更します。

protected $redirectTo = '/home';

ログアウト処理

コントローラークラスなどのログアウトしたい箇所で、Auth::logout()をコールします。

use Illuminate\Support\Facades\Auth;

class SampleController extends Controller
{
    public function logout() {
        Auth::logout();
        return redirect('login');
    }
}
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

関連コンテンツ

スポンサードリンク

Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です