Laravelの認証(ログイン・ユーザー登録・認証の基本) – 11/12

前回は LaravelのAPI開発 を解説しました。

これで

  • データ取得(API)
  • フロントエンド連携

ができるようになりました。

次に必要になるのが

ユーザー認証(ログイン機能)

です。

多くのWebアプリでは

  • ログイン
  • ユーザー登録
  • ログアウト

などの機能が必須です。

Laravelにはこれらを簡単に実装できる仕組みが用意されています。

この記事では次の内容を解説します。

  • 認証とは
  • Laravelの認証機能
  • Breezeの導入
  • ログイン処理
  • 認証チェック

認証とは

認証とは

ユーザーが誰であるかを確認する仕組み

です。

  • メールアドレス + パスワード
  • セッション管理
  • ログイン状態の保持

Laravelの認証機能

Laravelには認証機能が標準で用意されています。

ただし最近は

Breeze
Jetstream
Fortify

などのパッケージを使うのが一般的です。


Breezeの導入(おすすめ)

初心者には

Laravel Breeze

が最もシンプルでおすすめです。


インストール

composer require laravel/breeze --dev

セットアップ

php artisan breeze:install

フロントビルド

npm install
npm run dev

DB準備

php artisan migrate

起動

php artisan serve

画面確認

http://127.0.0.1:8000

認証画面

Breezeを導入すると自動で

  • ログイン画面
  • 登録画面

が作成されます。


ログイン

ログイン処理は内部で次のように行われます。

Auth::attempt([
    'email' => $email,
    'password' => $password
]);

現在のユーザー取得

$user = Auth::user();

ログアウト

Auth::logout();

認証チェック

ログインしているか確認

if (Auth::check()) {
    // ログイン済み
}

ミドルウェア

特定のページをログイン必須にする

Route::middleware('auth')->group(function () {
    Route::get('/dashboard', function () {
        return 'Dashboard';
    });
});

Controllerで制御

public function index()
{
    if (!Auth::check()) {
        return redirect('/login');
    }

    return view('dashboard');
}

API認証(補足)

APIでは次の方法を使います。

  • Sanctum(おすすめ)
  • Passport

Sanctum

composer require laravel/sanctum

実務での使い方

認証は次の場面で使われます。

  • 管理画面
  • 会員機能
  • 投稿機能
  • APIアクセス制御

認証の流れ

ユーザー登録
↓
ログイン
↓
セッション保存
↓
認証チェック
↓
ログアウト

よくあるミス


migrate忘れ

usersテーブルがない

パスワード未ハッシュ

bcrypt($password)

認証ミドルウェア未設定

ログイン不要になっている

まとめ

この記事では Laravelの認証機能 を解説しました。

重要なポイント

  • 認証 = ユーザー確認
  • Breezeで簡単導入
  • Authで操作
  • middlewareで制御

Laravelの認証を理解すると

本格的なWebアプリ

が作れるようになります。


次の記事

次回は

Laravel実務構成(最終回)

を解説します。

ここでは

  • フォルダ設計
  • API設計
  • フロント連携

など、実務で重要な内容をまとめます。

コメント

タイトルとURLをコピーしました