【Laravelメモ】ログイン済みかどうかの判定や、ログインしていない場合の挙動など

記事内に商品プロモーションを含む場合があります

ログイン済みか否かで、表示を変えたり、リダイレクトさせたり・・・といったことはWEBサービス開発では欠かせないですよね。

そこで、このページではそのあたりについて、Laravelでどう対応すれば良いのか紹介していきます。

(※現在作成中のため、徐々に追加しています。)

Routing:ルーティング

ログインしていない場合は、ログイン画面へリダイレクト

Route::get('/mypage', 'HomeController@index')->name('mypage')->middleware('auth');

後ろにmiddleware(‘auth’)を付ければOKです。

上記の例では、もしログイン済みでないユーザーがmypageにアクセスしようとすると、自動的にログイン画面へリダイレクトされます。

もし、リダイレクト先をログインページ以外の画面にしたい場合は、「app/Http/Middleware/Authenticate.php」内にある、以下の項目を変更します。

protected function redirectTo($request)
{
     if (! $request->expectsJson()) {
     return route('login');   //'login'をリダイレクトさせたいルート名に変更
    }
}

Controller:コントローラー

ログイン済みのユーザー情報を取得

//ログインユーザーの全情報
Auth::user();

//ログインユーザーのID
Auth::id();

Auth::user()を使った場合は、名前やら、アドレスやら、全て抽出できます。

アカウント設定画面などで使えますね。

View:ビュー

ブレード内部で、ログイン済みかどうかで表示を変えたいなんてことありますよね。

例えば、メニューの内容とか。

その場合には次のように書けばOKです。

ログイン済みであれば表示

@auth
<ul>
   <li>ログイン</li>
   <li>新規登録</li>
</ul>
@endauth

ログイン済みでなければ表示

@guest
<ul>
   <li>ログアウト</li>
</ul>
@endguest

おすすめのLaravelの書籍

created by Rinker
秀和システム
¥3,300
(2024/04/18 15:15:43時点 Amazon調べ-詳細)

コメントを残す

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

CAPTCHA