我想用Laravel 5.2开发一个RESTful API。我偶然发现如何以JSON格式返回失败的授权。目前,它正在抛出403页错误而不是JSON。如何在Laravel 5.2中以JSON格式返回403响应?
控制器: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;
}
}
政策:TenantPolicy.php
class TenantPolicy
{
use HandlesAuthorization;
public function show(User $user, Tenant $tenant)
{
$users = $tenant->users();
return $tenant->users->contains($user->id);
}
}
授权目前工作正常,但它显示了一个403页的禁止而不是返回JSON错误。是否有可能将它作为JSON返回给403?而且,是否有可能使所有失败的授权成为全局的(而不仅仅是在这个控制器中)?
我会使用第三方库像野狗/ API。它为你处理这个问题,以及版本控制和变形金刚。 https://github.com/dingo/api – musicvicious