Laravel - 访客用户门

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

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

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

代码说明

通过使用 nullable 类型提示,当访客用户传递到门时,$user 变量将为空。然后,您可以决定是否授权该操作。如果您允许可空类型并返回 true,则访客将获得授权。如果您不使用可空类型提示,访客将自动获得 Laravel 5.7 的 403 响应,如下所示 −

Nullable Type Hint

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