Laravel 5.7 的 Gate 和 Policy 已支持对未登录用户的检测
在 Laravel 5.6 及更低版本中,授权关卡和策略会自动为未经身份验证的用户返回 false。 在 Laravel 5.7 中,现在可以使用可空类型提示或将默认值设置为 null 来允许访客进行授权检查:
<?php
Gate::define('view-post', function (?User $user) {
// Guests
});
通过使用可空的类型提示,当访客被传递到授权验证的关卡时,用户对象变量 $user
将为空,然后你可以决定是否授权用户通过权限验证(获得授权)。如果你允许用户对象变量 $user
可空,并且返回 true
, 那么这个访客就会直接获得授权。
如果你不使用 nullable 类型提示,未登录的用户将被自动定向到这个精美的 403 页面, 由 Steve Schoger (@steveschoger) 设计:
Laravel 5.7 已发布,详见:翻译:Laravel 5.7 正式发布
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: