2016-04-10 6 views
2

Ich benutze auth: api Middleware im Controller (Laravel 5.2).Laravel 5.2 JSON Antwort auf Anfrage mit falschem api_token

class RestfulController extends Controller 
    { 

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

    } 

Routen:

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

Wenn Anfrage zur Login-Seite nicht enthält oder enthält ungültige api_token Rahmen umleitet. Stattdessen möchte ich JSON-Antwort mit Fehler zurückgeben. Wie kann es implementiert werden?

+0

Hallo können Sie zeigen Sie Ihre Routen-Datei? – dyachenko

Antwort

3

Änderung app/Http/Middleware/Authenticate.php Griff Methode, wird es Antwort 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); 
} 
1

Sie sollten überprüfen api und auth:api Middleware-Gruppe und suchen Sie nach einer, die es tut. Wenn es sich in einem Anbieterpaket befindet, müssen Sie es erweitern und Ihre Änderungen vornehmen.