Laravel Guest User Gates 怎么用?访客用户权限门如何实现?

文章导读
上一个 测验 下一个 Guest User Gates 特性是 2018 年 9 月发布的最新 5.7 版本的附加功能。此特性用于为特定用户启动授权流程。
📋 目录
  1. 代码解释
A A

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 错误如上图所示,是未授权用户访问网站时显示的。