如何在Laravel 5.2中以JSON格式返回403响应?
2022-08-30 15:12:05
我正在尝试使用Laravel 5.2开发一个RESTful API。我偶然发现了如何以JSON格式返回失败的授权。目前,它正在抛出403页面错误而不是JSON。
控制器: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 错误。是否可以将其作为 403 的 JSON 返回?而且,是否有可能将其设置为所有失败的授权的全局(而不仅仅是在此控制器中)?