如何在 Laravel 5.2 中以 JSON 格式返回 403 响应?

2024-03-18

我正在尝试使用 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;
    }
}

Policy: 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 返回?并且,是否可以将所有失败的授权设为全局(而不仅仅是在此控制器中)?


我们设法通过修改异常处理程序来解决这个问题App\Exceptions\Handler.php将其添加到render功能。

public function render($request, Exception $e)
{
    if ($e instanceof AuthorizationException)
    {
        return response()->json(['error' => 'Not authorized.'],403);
    }
    return parent::render($request, $e);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Laravel 5.2 中以 JSON 格式返回 403 响应? 的相关文章

  • 自定义 php 论坛 - 显示新的/未读的帖子

    我自己使用 php 编写了一个自定义论坛脚本 我决定不使用 phpbb 和其他工具 因为我希望我所做的事情具有 100 的灵活性 不过我遇到了一个问题 如何向用户显示帖子是否是新的 未读的 我想到了两种解决方案 1 饼干 2 数据库 我不想
  • 附加之前检查数据库中是否存在 ID

    我通过选择一个带有类别的数组json decode并将它们附加到文章中 public static function setArticleCategory Request request article Article where id r
  • PHP UTF-8 配置

    我正在使用 PHP 5 3 5 配置 Apache 2 2 17 服务器 我的目标是创建一个默认为内容类型的干净配置UTF 8 php ini default charset UTF 8 default mimetype applicati
  • PHP 数组键字符串不带引号

    我正在将文件移动到服务器 并使用 GET mode 等变量 而 mode 中不带 单引号 它在本地运行良好 但在服务器上我收到通知 我该如何克服这个问题 这是我的 phpinfo 文件phpinfo http solutiq com php
  • 如何使用 Vim 和 Eclipse 提高 PHP5.3 项目的工作效率(可能使用 Eclim 与 Zend Studio 集成)

    在开发应用程序时 我总是努力提高生产力 在过去的几年里 我可以说我在提高生产力方面取得了良好的进展 但我仍然发现我需要更多的工具或方法 我需要更快地编辑并学习盲打 目前正在过程中 因此我发现需要转向 Vim 现在已经一年多了 我已经放弃了
  • 是否可以共享 Symfony2 安装(一台服务器上的多个网站 [域])

    我想在一个根 服务器 下托管多个基于 Symfony2 的网站 是否可以共享 symfony 自己的文件 供应商等 有人知道教程吗 管理起来困难吗 AFAIK Symfony 安装大约有 600MB 我不想以冗余方式保存它 我看起来确实有可
  • 如果所有情况都是真正的 PHP,如何处理这些情况

    我想知道是否有办法继续完成所有三种情况 如果它们都是真的 但是使用break 因为作为一个例子 如果第一种情况是真的 第二种情况是假的 第三种情况也是假的 而且我没有使用break 无论如何它都会进行 将strtotime更改为2014年1
  • 用于添加和删除客户名称的 Web 表单出现问题

    我正在尝试创建一个 Web 表单 其中列出了所有客户 然后为您提供一个文本字段 旁边有一个按钮 您可以在其中添加客户 然后它应该显示客户列表 旁边有删除按钮 您可以单击该按钮从数据库中删除客户 我正在让它发挥作用 对于初学者来说 它会回显
  • PHP中是否可以使用filter_var过滤带小数点的整数?

    我需要像这样过滤值100 50在 PHP 中使用filter var 现在我这样使用 filter var POST amount FILTER SANITIZE NUMBER INT 它给我的结果是10050 我怎么解决这个问题 提前致谢
  • 使用ajax发送表单数据

    我想用 ajax 以表单形式发送所有输入 我有一个这样的表单
  • 在 while 循环之外使用变量(作用域)

    关于 PHP 范围的小问题 我似乎无法在 while 循环之外调用变量 report 我尝试过各种事情 包括return 这不起作用 这里唯一起作用的两个函数是如果我echo变量 report在循环内 或者如果我print它 我不想这样做
  • Laravel 6:尚未设置外观根

    经过一段时间的努力 我已将我的网站从 Laravel 5 8 迁移到 Laravel 6作曲家更新我在网站上遇到此错误 并且仅使用命令PHP工匠 PHP Fatal error Uncaught RuntimeException A fac
  • PHP 计数器在 while 循环中递增

    我在一个 while 循环中增加计数器时遇到问题 基本上我只想在数据库中获取的两个图像链接之间交替 但我的计数器不会增加 我不确定为什么有人可以提供帮助 while row stmt gt fetch PDO FETCH ASSOC img
  • 使用 Laravel Fluent 查询生成器从多个表中进行选择

    我正在重写一些 PHP MySQL 来与 Laravel 一起使用 我想做的一件事是使数据库查询更加简洁使用 Fluent 查询生成器 http laravel com docs database fluent但我有点迷失 SELECT p
  • Symfony 5.4 Security Bundle,注册后无法登录

    我在 5 4 版本上构建空的新项目 我使用这些命令来构建项目 composer create project symfony skeleton 5 4 testapp54 cd testapp54 composer require weba
  • 向 yahoo 和 hotmail 用户发送电子邮件?

    我正在使用 php 和 mysql 每次用户在我的网站上注册时 我都会使用 php mail 发送一封电子邮件进行身份验证 最近我发现 很多Yahoo和Hotmail用户还没有激活他们的帐户 假设 1000 个用户中 只有 200 个被激活
  • 在 Woocommerce 的单个产品页面上显示特定的自定义产品属性

    我找到了以下代码 https isabelcastillo com woocommerce product attributes functions在产品详细信息页面上显示所有自定义属性 具有我需要的特定条形设计 代码的工作方式就像一个魅力
  • 根据产品属性在 Magento 中创建购物车规则

    我在一个类别中有产品 针 有些以 100 支为一包出售 有些以 500 支为一包出售 盒子中的针数被设置为产品属性 我想根据购物车中的针总数应用购物车规则 F x 如果您购买 1000 2000 根针头 无论 500 100 包的组合如何
  • 未找到教义列:1054“字段列表”中未知列“s.features”

    我在站点表中添加了一个新列 features 并使用 Doctrine 重新生成了模型 此代码导致错误 siteTable Doctrine Core getTable Site site siteTable gt findOneByNam
  • Cakephp - CSRF 令牌不匹配

    我在 Cakephp 3 6 中有一个项目 其中 MessageController 中的 3 个操作由 Ajax 调用 但是 我有一个问题 当我向其中一个操作发送请求时 XHR 会向我返回以下内容 message CSRF token m

随机推荐

  • JavaFX 如何滚动 ScrollPane 以使节点位于视口中间?

    我必须创建显示当前时间的时间线 我正在使用 AnchorPane 并将添加的行放置在 ScrollPane 中 我需要模拟1天 滚动窗格宽度为 2880px 每60px为一小时 我的限制是 前一天 12 小时 第二天 12 小时 移动我的线
  • 如何为BackgroundService传递参数?

    我阅读了有关 ASP net core 2 2 的内容 并找到了有关通用主机的参考资料 我尝试在示例下使用 backgroundService 创建控制台应用程序 https github com aspnet AspNetCore Doc
  • 一个值在数组中存在多少次[重复]

    这个问题在这里已经有答案了 我想做的第一件事是找出我在输入中输入的数字是否存在于数组中 这有效 我想做的第二件事是找出它存在的次数 我在这里走的路正确吗
  • 如何将 Flot 与 AngularJS 集成?

    我对 Angular 和 Flot 很陌生 但对 Jquery 和 Javascript 很熟悉 我对如何将 Flot 图表绑定到 Angular 数据模型有点困惑 因为 Flot 是一个 JQuery 插件 我四处搜寻 但未能找到示例 我
  • 库存管理数据库设计

    我正在为我的公司创建一个内部网 我们希望在其中进行库存管理 我们销售和租赁报警系统 我们希望很好地了解哪些产品仍在我们的办公室中 哪些产品已出租或出售 何时出租或出售等 目前我想到了这个数据库设计 每次我们创建新合同时 该合同都与地点或商品
  • 如何扩展Generator类?

    我尝试过滤生成器 并期望这种通用功能必须在 JavaScript 中的任何位置定义 因为它是为数组定义的 但我找不到它 所以我试图定义它 但我无法扩展内置发电机 我有一个示例生成器 function make nums let nums n
  • NSFetchRequest 未捕获属性已更改的对象

    我在 Mac Os X 10 6 上使用 SQL 存储时遇到了 Core Data 的奇怪问题 我有一个NSManagedObject子类称为Family有属性name和一段关系personList连接到另一个NSManagedObject
  • 必须从 UI 线程调用 getText() 方法

    必须从 UI 线程调用 getText 方法 请帮忙 我是 android studio 的初学者 在网上找到了这些代码 但无法弄清楚 我真的很感激 public class MainActivity extends AppCompatAc
  • Django password_reset 支持 html 电子邮件模板吗?

    在我看来 django 仅支持开箱即用的密码重置电子邮件的纯文本消息 我如何使用 html 模板来实现此目的 以下是如何进行覆盖 urls py url r user password reset YOUR APP views passwo
  • node.js - 代码保护?

    我想在下一个项目中使用node js 但我的老板不喜欢我们的竞争对手可以阅读源代码 有没有办法保护 JavaScript 代码 您可以使用 Node 的 NativeExtension 来完成此操作 你会有一个boostrap js为 js
  • 我如何能够在 C++ 中声明一个在运行时确定的可变长度数组?

    请检查这段代码 它编译并运行得非常好 问题是 当我开始学习 c turbo c 时 我从来无法将任何类型的数组声明为 datatype var variable set at runtime 我想当然地认为这在最新的 gcc 编译器中是不可
  • 如何根据优先级和关联性来解析(复杂)声明?

    符号 如 等 两者都使用表达式 and 声明 这是两个不同的概念 In 表达式 符号为运营商 为此我们有一个明确定义的优先级和结合性表 当表达比较复杂 我们可以利用这张表进行分解分析 例如 a b c Question In 声明 这些符号
  • 使用 Kinesis Analytics 构建实时会话

    是否有某个地方的示例 或者有人可以解释如何使用 Kinesis Analytics 构建实时会话 即会话化 这里提到这可能 https aws amazon com blogs aws amazon kinesis analytics pr
  • Oracle XMLQuery 正在破坏命名空间

    甲骨文版本11 2 下面是我在 XMLType 列上运行的 XMLQuery 的简化版本 当我运行查询时 它只是解析并重新创建存储的 XML tsxm 命名空间 不等于默认命名空间 被改变 该查询不执行任何操作 并且可以轻松重写 但真正的
  • 如何在 pandas df.query() 中使用循环变量

    我该如何解决以下问题df query行停止获取错误消息 name z is not defined 我有 3 列数据 想要绘制 3D 多边形 我运行一个循环来配对 X Y 其中我尝试使用循环变量 z 筛选一列 zs 20 30 40 50
  • 如何向 Jackson 全局添加自定义序列化器并默认使用

    假设我想序列化Boolean into Number 默认情况下 我知道我可以逐个领域地做到 JsonFormat shape Shape NUMBER private Boolean success 但是我可以 注册 我的自定义序列化器
  • 如何使用 WinRT 获取文件?

    我想要的是 从 AppData 获取要使用的 xml 我编码的内容 StorageFolder localFolder Windows Storage ApplicationData Current LocalFolder StorageF
  • 使用 R 在一张图中绘制光谱数据

    我有多个数据框 其中第一列 最后填充 NA 是波数 其他列是多次观测的特定波数的变量 是否有可能以我的第一列保存 x 轴变量而另一列绘制为具有各自 y 值的大图的方式绘制列 我已经尝试过 matplot 结果是 数字 而不是点 matplo
  • Microsoft Graph 和 Azure Ad 用户身份验证

    我在 Azure 广告中注册了一个应用程序 当我使用以下详细信息执行 ADAL 时 我会获得一个授权令牌以与 microsoft graph api 一起使用 username email protected cdn cgi l email
  • 如何在 Laravel 5.2 中以 JSON 格式返回 403 响应?

    我正在尝试使用 Laravel 5 2 开发 RESTful API 我偶然发现如何以 JSON 格式返回失败的授权 目前 它抛出 403 页面错误而不是 JSON 控制器 TenantController php class Tenant