Basic認証を利用した認証処理


 悩み事

ログインなどの認証処理に、Basic認証を利用したい

 解決方法

Auth::basic()メソッドを利用します

引数等を指定せずにBasic認証を行う場合は、'email'を使って認証します
これは、Auth::basic()の引数でデフォルトとして指定されています

$result = Auth::basic();
if ($result) {
    throw new \Exception('invalid credentials');
}

'email'ではなく、任意のフィールドを指定する場合は、第一引数で指定する事ができます
下記の例は、usernameを指定した例です

$result = Auth::basic('username');
if ($result) {
    throw new \Exception('invalid credentials');
}

他にもリクエストの値を直接含める事も可能です

$result = Auth::basic('email', $request);

ただしくない認証情報が渡された場合は、
401 Invalid Credentials エラーが返却されます

 アドバイス

認証処理は、auth.attemptイベントとして登録されています

認証が成功した場合は、auth.loginイベントが発生します

それぞれのイベントは、\Event::listen()を利用することで、
任意の処理等を実装する事ができます。

Event::listen('auth.login', function($user) {
    // 任意の処理
});

auth.basicフィルターを使って、Auth::basic()を実装しましょう


Author:Chuck Heintzelman

Editor and Translator:Yuuki Takezawa