1

laravelの「HTTP基本認証」機能を使用しています。入力した資格情報が間違っている場合にlaravelから生成されるエラーメッセージをカスタマイズしたい。

HTTP Auth が失敗したときに生成される 401 エラーをキャッチすることはできますか?

あなたが私を助けてくれることを願っています。

よろしく

4

2 に答える 2

4

基本認証

エラーをキャプチャ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);
    }
});





Auth ライブラリの使用

コードは非常に簡単で、自明だと思います。$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
于 2013-11-01T14:29:44.843 に答える