在使用中间件时加入的 confirmEmail,不太理解?

在本章中的app/Http/Controllers/UsersController.php


public function __construct()
    {

        $this->middleware('auth', [
            'except' => ['show', 'create', 'store', 'index', 'confirmEmail']
        ]);
        .
        .
        .

    }

对于这个理解是,只有在未登录时才生效

auth表示在未登录的情况下进行验证

except 表示只接受对应值的方法

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

@kitty auth 是验证是否登录的中间件。
如果方法是在 authexcept 数组中,表示:除了(except)以下方法不需要登录(auth)就能访问,其它方法需要登录才能访问;
相反地,如果方法是在 authonly 数组中,则表示:只有(only)以下方法需要登录(auth)才能访问;
如果没有通过验证,则会跳转到登录页面。

5年前 评论
讨论数量: 5

@Fykex 是否可以这么理解这段代码:在未登录的情况下,排除except里的方法,即未登录的情况下,except里的方法是不允许访问的

5年前 评论

我们在 __construct 方法中调用了 middleware 方法,

  • 该方法接收两个参数,第一个为中间件的名称,第二个为要进行过滤的动作。
  • 我们通过 except 方法来设定 指定动作 不使用 Auth 中间件进行过滤,
  • 意为 —— 除了此处指定的动作以外,所有其他动作都必须登录用户才能访问,类似于黑名单的过滤机制。
  • 相反的还有 only 白名单方法,将只过滤指定动作。
  • 我们提倡在控制器 Auth 中间件使用中,首选 except 方法,
  • 这样的话,当你新增一个控制器方法时,默认是安全的,此为最佳实践。
5年前 评论

Auth中间是用来限制登录后才能访问的,那么既然排除了就是不登录也能访问

5年前 评论

@kitty auth 是验证是否登录的中间件。
如果方法是在 authexcept 数组中,表示:除了(except)以下方法不需要登录(auth)就能访问,其它方法需要登录才能访问;
相反地,如果方法是在 authonly 数组中,则表示:只有(only)以下方法需要登录(auth)才能访问;
如果没有通过验证,则会跳转到登录页面。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!