Laravel - 访客用户 Gates
Guest User Gates 特性是 2018 年 9 月发布的最新 5.7 版本的附加功能。此特性用于为特定用户启动授权流程。
在 Laravel 5.6 中,有一种做法,对于未认证用户会返回 false。在 Laravel 5.7 中,我们可以通过在指定的 controller 中使用特定的 nullable 类型提示来允许访客通过授权检查,如下所示 −
<?php
Gate::define('view-post', function (?User $user) {
// 访客用户
});
代码解释
通过使用 nullable 类型提示,当访客用户传递给 gate 时,$user 变量将为 null。然后您可以决定是否授权该操作。如果您允许 nullable 类型并返回 true,则访客将获得授权。如果不使用 nullable 类型提示,访客将自动收到 Laravel 5.7 的 403 响应,如下所示 −
403 和 404 错误的区别在于,404 是用户尝试访问未知资源或 URL 时显示的,而 403 错误如上图所示,是未授权用户访问网站时显示的。