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 开发相关的进阶知识。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 2

:flushed: 我是来测试表情的

1年前 评论

年纪大了,差点都不认识 ?User 这个特性了

1年前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!