Laravel - 访客用户门


访客用户门功能是 2018 年 9 月发布的最新 5.7 版本的附加功能。此功能用于启动特定用户的授权过程。

在 Laravel 5.6 中,有一个过程用于为未经身份验证的用户返回false 。在 Laravel 5.7 中,我们可以通过在指定控制器中使用特定的可空类型提示来允许来宾进行授权检查,如下所示 -

<?php
Gate::define('view-post', function (?User $user) {
   // Guests
});

守则解释

通过使用可为 null 的类型提示,当来宾用户传递到 Gate 时,$user 变量将为 null。然后您可以做出有关授权该操作的决定。如果您允许可为 null 的类型并返回 true,则访客将拥有授权。如果您不使用可空类型提示,客人将自动获得 Laravel 5.7 的 403 响应,如下所示 -

可空类型提示

403 和 404 错误之间的区别在于,当用户尝试访问未知资源或 URL 时会显示 404,而如果未经授权的用户访问网站,则会显示上面快照中提到的 403 错误。