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) 设计:

file

Laravel 5.7 已发布,详见:翻译:Laravel 5.7 正式发布

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/laravel-5-7-gue...

译文地址:https://learnku.com/laravel/t/16824

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。