我遵循文档并覆盖了Authenticate方法:https://laravel.com/docs/10.x/authentication#authenticating-users
但是,它仍然不运行。我的意思是我的自定义代码不运行时,用户登录。我从文档中复制粘贴了整个代码块,并在其中添加了一个Log::info,所以如果它运行,我会在日志文件中看到“Hello from authenticate”,但我什么也没看到。我还删除了它的所有内容,只是把日志留在里面,但我得到了身份验证没有问题。
我错过了什么?
HTTP->Controllers->Auth->LoginController:authenticate --仅使用下面的代码,用户仍然可以顺利地通过身份验证。但他们不应该。
public function authenticate(Request $request): RedirectResponse
{
Log::info("Authenticate is started");
return back()->withErrors([ // this is a default response if an error occured.
'email' => 'Just testing.',
])->onlyInput('email');
}
字符串
编辑:我优化了:clear和composer du,没有什么变化。
2条答案
按热度按时间7lrncoxx1#
嘿,看起来你引用的是Laravel 10文档,但实现的是不同版本的laravel而不是10。所以下面的事情你应该首先检查,
1.你的Laravel版本是10还是其他版本?使用以下命令,
php artisan --version
1.检查您正在查找的控制器是否与用于身份验证的控制器相同。现在如果你正在使用laravel 10,那么你应该看看下面的控制器:
app/Http/Controllers/Auth/AuthenticatedSessionController.php
8xiog9wr2#
我通过覆盖
login
方法而不是authenticate
方法“解决”了这个问题(可能是永久性的)。尽管文档中专门谈到了authenticate
方法,但似乎从未在登录和注册方法中调用过它,所以它只是浮动的。我会给那些可能知道答案的人给予空间,如果我错了,或者纠正我,但在那之前,就是这样:覆盖
login
而不是authenticate
。