Wie die Rückkehr 403 Antwort im JSON-format in Laravel 5.2?

Ich versuche zu entwickeln, die eine RESTful API mit Laravel 5.2. Ich bin gestolpert auf wie die Rückkehr der fehlgeschlagenen Autorisierung im JSON-format. Derzeit, es wirft den Fehler 403 Seite anstelle von JSON.

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 Genehmigung ist derzeit gut funktioniert, aber es zeigt sich eine 403 forbidden-Seite anstatt json Fehler. Ist es möglich, Rückgabe als JSON für die 403? Und, ist es möglich, um es global für alle fehlgeschlagenen Berechtigungen (nicht nur in diesem controller)?

  • Ich würde verwenden eine 3rd-party-Bibliothek wie dingo/api. Es behandelt das für Sie, sowie die Versionierung und Transformatoren. github.com/dingo/api
InformationsquelleAutor Heru S | 2016-07-26
Schreibe einen Kommentar