自定义Laravel的Authenticate方法似乎没有任何作用

wgmfuz8q  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(85)

我遵循文档并覆盖了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,没有什么变化。

7lrncoxx

7lrncoxx1#

嘿,看起来你引用的是Laravel 10文档,但实现的是不同版本的laravel而不是10。所以下面的事情你应该首先检查,
1.你的Laravel版本是10还是其他版本?使用以下命令,
php artisan --version
1.检查您正在查找的控制器是否与用于身份验证的控制器相同。现在如果你正在使用laravel 10,那么你应该看看下面的控制器:
app/Http/Controllers/Auth/AuthenticatedSessionController.php

8xiog9wr

8xiog9wr2#

我通过覆盖login方法而不是authenticate方法“解决”了这个问题(可能是永久性的)。尽管文档中专门谈到了authenticate方法,但似乎从未在登录和注册方法中调用过它,所以它只是浮动的。
我会给那些可能知道答案的人给予空间,如果我错了,或者纠正我,但在那之前,就是这样:覆盖login而不是authenticate

相关问题