Laravel ログイン時に複数項目のIDを使用する

こんにちは。今回はLaravelでログインする際に複数項目でユーザーを認証する方法を解説します。

複数項目のIDでユーザーを認証するとは

まずタイトルの「複数項目でユーザーを認証する」の意味を解説します。通常ログインというとユーザーIDやメールアドレスのみの認証を思い浮かべると思います。これは単一項目をIDとした認証です。一方で複数項目を使用する例は「企業IDとユーザーID」、「顧客IDとメールアドレス」といった感じで、ユーザーを特定するのに2つ以上の項目を使用する場合を指します。今回は複数項目をIDで認証する場合の実装方法を解説します。

Auth::attemptを使用する

Authファサードのattemptを使用する場合は、第3引数以降に追加することで対応可能です。

if (Auth::attempt(['user_id' => $userId, 'password' => $password])) {
    // ユーザーIDとパスワードで認証
}

if (Auth::attempt(['user_id' => $userId, 'password' => $password, 'campany_id' => $campanyId])) {
    // 企業ID、ユーザーID、パスワードで認証
}

まとめ

複数の項目でユーザー登録する方法を説明しました。分かってしまえば簡単なのですが、調べる過程で結構つまづいたのでメモしておきます。

Laravel

Posted by kobainmac