laravelの「HTTP基本認証」機能を使用しています。入力した資格情報が間違っている場合にlaravelから生成されるエラーメッセージをカスタマイズしたい。
HTTP Auth が失敗したときに生成される 401 エラーをキャッチすることはできますか?
あなたが私を助けてくれることを願っています。
よろしく
laravelの「HTTP基本認証」機能を使用しています。入力した資格情報が間違っている場合にlaravelから生成されるエラーメッセージをカスタマイズしたい。
HTTP Auth が失敗したときに生成される 401 エラーをキャッチすることはできますか?
あなたが私を助けてくれることを願っています。
よろしく
エラーをキャプチャ401
してカスタムビューを返してみる?!
App::error(function($exception, $code)
{
switch ($code)
{
case 401:
return Response::view('errors.403', array(), 401);
case 403:
return Response::view('errors.403', array(), 403);
case 404:
return Response::view('errors.404', array(), 404);
case 500:
return Response::view('errors.500', array(), 500);
default:
return Response::view('errors.default', array(), $code);
}
});
コードは非常に簡単で、自明だと思います。$errors
変数はタイプMessageBag
であり、明示的に設定しなくてもビューで使用できることに注意してください。これは素晴らしいです!:)
単純なルーティングを使用しました。コントローラーに配置します
app/routes.php
Route::get('auth', function()
{
$creds = array(
'email' => Input::get('email'),
'password' => Input::get('password'),
);
if ( ! Auth::attempt($creds))
{
$errors = new MessageBag;
$errors->add('login', trans("Username and/or password invalid."));
return Redirect::to('/')->withErrors($errors);
}
return Redirect::to('/protected/area');
});
Route::get('/', function(){
return View::make('hello');
});
// app/views/hello.php
@if($errors->has('login'))
{{ $errors->first('login') }}
@endif