2

コントローラーで auth:api ミドルウェアを使用します (Laravel 5.2)。

class RestfulController extends Controller
    {

        public function __construct() {
            $this->middleware(['api', 'auth:api'], ['except' => ['login'] ]);
        }

    }

ルート:

Route::group(['prefix' => 'api'], function () {
    Route::get('/login', ['uses' => 'RestfulController@login', 'as'=>'login']);
    Route::get('/list', ['uses' => 'RestfulController@list', 'as'=>'list']);
});

リクエストに無効な api_token フレームワークが含まれていないか含まれていない場合、ログイン ページにリダイレクトされます。代わりに、エラーのある JSON 応答を返したいと思います。どのように実装できますか?

4

2 に答える 2

4

app/Http/Middleware/Authenticate.php ハンドル メソッドを変更すると、json が応答します

public function handle($request, Closure $next, $guard = null)
{
    if (Auth::guard($guard)->guest()) {
        if ($request->ajax() || $request->wantsJson()) {
            return response('Unauthorized.', 401);
        } else {
            $response = [
                'status' => 'error',
                'message' => 'This is error message'
            ];
            return Response::json($response);
        }
    }

    return $next($request);
}
于 2016-04-10T12:22:56.237 に答える
1

ミドルウェアグループをチェックapiauth:apiて、魔女がやっているのを探す必要があります。ベンダー パッケージ内にある場合は、それを拡張して変更を加える必要があります。

于 2016-04-10T12:12:48.593 に答える