ログイン済みか否かで、表示を変えたり、リダイレクトさせたり・・・といったことは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
¥6,225
(2024/11/24 13:23:52時点 Amazon調べ-詳細)
(2024/11/24 13:23:52時点 Amazon調べ-詳細)