Laravelで認証機能を実装する際、多くの場面で登場するのが Authファサード です。
この記事では、Authファサードでよく使うメソッドをピックアップし、ざっくり使い方を紹介します。
1. Auth::check()
- 用途: 現在のユーザーが認証済みかどうかを判定する
-
戻り値: 認証済みの場合は
true
、それ以外はfalse
if (Auth::check()) {
// ユーザーは認証済み
} else {
// ユーザーは未認証
}
たとえば Blade テンプレートで表示を切り替える際などによく使います。
@if(Auth::check())
<p>ようこそ、{{ Auth::user()->name }} さん</p>
@else
<p>ゲストユーザーです</p>
@endif
2. Auth::user()
- 用途: 現在の認証済みユーザーの情報(Userモデル)を取得する
-
戻り値: 認証済みの場合は
App\Models\User
のインスタンス、未認証の場合はnull
$user = Auth::user();
if ($user) {
// $user->id, $user->name などが使える
}
ユーザー名やメールアドレスを取りたい場合は、このメソッドで簡単に取れます。
3. Auth::id()
- 用途: 認証済みユーザーの主キー(ID)を取得する
-
戻り値: 認証済みの場合はユーザーID、未認証の場合は
null
$userId = Auth::id();
// 数値 (1, 2, 3...) が返ってくる
「とりあえずIDだけ必要」という場合に便利です。
4. Auth::attempt($credentials, $remember = false)
- 用途: 認証を試みる(ユーザー名・パスワードのチェック)
-
パラメータ:
-
$credentials
: 配列形式(例:['email' => 'foo@bar.com', 'password' => 'secret']
) -
$remember
: Remember Me 機能を使うかどうか。省略時はfalse
-
-
戻り値: 認証成功で
true
、失敗でfalse
$credentials = [
'email' => $request->input('email'),
'password' => $request->input('password')
];
if (Auth::attempt($credentials)) {
// 認証成功
return redirect()->intended('dashboard');
} else {
// 認証失敗
return back()->withErrors(['email' => '認証に失敗しました']);
}
コントローラ内でログイン処理を実装するときに頻繁に利用します。
5. Auth::login($user, $remember = false)
- 用途: 指定したユーザー(Userモデル)を直接ログインさせる
-
パラメータ:
-
$user
:User
インスタンス -
$remember
: Remember Me 機能のオン/オフ
-
- 戻り値: なし
$user = User::find(1); // 例: IDが1のユーザー
Auth::login($user);
// これで即座に認証状態になる
SNSログインや、外部サービスからのコールバック時に、ユーザーを直接ログイン状態にするときなどに使います。
6. Auth::logout()
- 用途: 現在ログイン中のユーザーをログアウトさせる
- 戻り値: なし
Auth::logout();
return redirect('/login');
セッションからユーザーの認証情報が削除され、未認証状態になります。
Auth::attempt
との違いについては以下の記事を参考にしてください。
参考
Laravel 認証:attempt()
と login()
の違い
7. Auth::viaRemember()
- 用途: ユーザーが「Remember Me」機能(ログイン状態維持)で自動ログインしているかどうかの判定
-
戻り値: Remember Me でログインしていれば
true
、そうでなければfalse
if (Auth::check() && Auth::viaRemember()) {
// 「ログイン状態を保持する」チェックでログインしている場合のみの処理
}
Remember Me 機能の利用状況を判別したいときに使えます。
おわりに
Laravel の認証周りは、
-
check()
,user()
,id()
で認証状態やユーザー情報を確認 -
attempt()
,login()
でログイン処理 -
logout()
でログアウト -
viaRemember()
でRemember Meの確認
このあたりが基本となります。
フレームワークに組み込まれているので、使い慣れるととても便利です。
今後も実装時にはこれらのメソッドをうまく活用してみてください。
参考リンク
以上、Authファサードでよく使うメソッドまとめでした!