首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Laravel5.2中返回JSON格式的403响应?

如何在Laravel5.2中返回JSON格式的403响应?
EN

Stack Overflow用户
提问于 2016-07-26 04:11:13
回答 6查看 35.9K关注 0票数 30

我正在尝试用Laravel5.2开发一个RESTful API。我无意中发现了如何以JSON格式返回失败的授权。目前,它正在抛出403页错误,而不是JSON。

控制器:TenantController.php

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
class TenantPolicy
{
    use HandlesAuthorization;
    public function show(User $user, Tenant $tenant)
    {
        $users = $tenant->users();
        return $tenant->users->contains($user->id);
    }
}

该授权目前运行良好,但它显示的是一个403禁止页面,而不是返回json错误。是否可以将它作为403的JSON返回?而且,对于所有失败的授权(不仅仅是在这个控制器中),是否有可能使其成为全局的?

EN

Stack Overflow用户

发布于 2020-03-24 16:39:41

至于最新版本的Laravel,现在的版本是>=7.x,

通常,设置请求头'Accept‘=> 'application/ json '会告诉Laravel您希望json响应返回。

对于错误,还需要通过在APP_DEBUG=false文件上设置.env来关闭调试,这将确保响应是json,并且不提供堆栈跟踪。

票数 4
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38580890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档