Ich versuche eine RESTful API mit Laravel 5.2 zu entwickeln. Ich bin darüber gestolpert, wie ich eine fehlgeschlagene Autorisierung im JSON-Format zurückgeben kann. Derzeit wird der 403-Seitenfehler anstelle von JSON ausgegeben.Wie 403 Antwort im JSON-Format in Laravel 5.2 zurückgegeben werden?
Controller: TenantController.php
class TenantController extends Controller
{
public function show($id)
{
$tenant = Tenant::find($id);
if($tenant == null) return response()->json(['error' => "Invalid tenant ID."],400);
$this->authorize('show',$tenant);
return $tenant;
}
}
Politik: TenantPolicy.php
class TenantPolicy
{
use HandlesAuthorization;
public function show(User $user, Tenant $tenant)
{
$users = $tenant->users();
return $tenant->users->contains($user->id);
}
}
Die Ermächtigung zur Zeit arbeitet gut, aber es ist eine 403 verbotene Seite zeigt nach oben statt json Fehler zurückzugeben. Ist es möglich, es als JSON für die 403 zurückzugeben? Und ist es möglich, es für alle fehlgeschlagenen Autorisierungen global zu machen (nicht nur in diesem Controller)?
würde ich eine 3rd-Party-Bibliothek wie Dingo/api verwenden. Es handhabt das für Sie, ebenso wie Versionierung und Transformatoren. https://github.com/dingo/api – musicvicious