我正在做我的第一个Laravel项目,并根据this tutorial实现了2FA,但不幸的是,创建的2FA机制仅附加到HomeController
。
因此,如果用户尝试从未经身份验证的状态访问www.thingy.com/something
,他们将照常输入电子邮件和密码,然后直接进入/something
,而不会出现2FA提示。
我的第一个想法是将中间件位添加到每个资源控制器中的每个__construct()
函数中,但是它们还没有__construct()
函数(我可以添加吗?),甚至如果可行的话,这似乎不是正确的方法。
我还考虑过将其添加到Controller
本身,因为这是每个其他控制器所基于的,但是我当然也不需要非认证视图也需要2FA(只需注册,登录等,因为网站需要登录才能使用。
这样做的正确方法是什么?
答案 0 :(得分:1)
您可以在routes/web.php
文件中add the middleware to a group of routes。
Route::middleware('2fa')->group(function () {
// All routes here will go through the "2fa" middleware
});