我正在尝试使用开箱即用的 Laravel 身份验证。身份验证不是问题,但我想检查用户是否确认了他的电子邮件地址。
我如何让 Laravel
检查表值 confirmed
的值为 1。
在 config/auth.php 中,我设置了 'driver' => 'database'
因此,如果我正确理解文档,我就可以进行手动身份验证,我想我可以检查用户是否已确认他的帐户。
Laravel 在哪里执行匹配的用户名和密码检查?
最佳答案
如果您正在使用 Laravel Auth 开箱即用,您需要查看 AuthController已经为您设置好了。
你会看到这使用了一个特征 AuthenticatesAndRegistersUsers向 Controller 添加行为。
在该特征中,您将找到方法 postLogin
.
您需要通过将您自己的 postLogin
添加到 AuthController
来覆盖此方法。您可以复制并粘贴初学者的方法。
现在去看看 Laravel docs on authentication 。向下滚动到“根据条件对用户进行身份验证”的位置。
if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1]))
{
// The user is active, not suspended, and exists.
}
更改 postLogin
方法中的 attempt()
代码以包含该条件,如示例中所示。在您的情况下,您可能希望传递 'confirmed' => 1
条件而不是事件条件,具体取决于您在用户表中对该字段的称呼。
这应该能让你继续前进!
关于php - 如何使用 Laravel 5 检查用户是否已确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28992533/