Laravel 访客Gates


Guest User Gates 功能是2018年9月发布的最新5.7版本的一个附加功能,这个功能是用来启动特定用户的授权过程的。

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

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

代码说明


当访客用户被传递到gates时,通过使用一个nullable,$user 变量将为空,然后你可以做出有关授权操作的决定。如果你允许nullable类型并返回 true,则访客将获得授权。如果不使用nullable类型提示,Laravel 5.7 访客会自动收到 403 响应。

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