Laravel - 客戶端用戶權限閘道



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

在 Laravel 5.6 中,有一个过程用于为未认证的用户返回 **false**。在 Laravel 5.7 中,我们可以允许访客进行授权检查,方法是在指定的控制器中使用特定的 **nullable** 类型提示,如下所示:

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

代码解释

通过使用 **nullable** 类型提示,当将访客用户传递到权限闸道时,$user 变量将为 null。然后,您可以根据需要进行授权决策。如果您允许空类型并返回 true,则访客将拥有授权。如果您不使用空类型提示,则访客将自动获得 Laravel 5.7 的 403 响应,如下所示:

Nullable Type Hint

403 和 404 错误的区别在于,当用户尝试访问未知资源或 URL 时会显示 404 错误,而如上快照所示的 403 错误则是在未授权用户访问网站时显示。

广告