我正在尝试开箱即用地使用 Laravel 身份验证。身份验证不是问题,但我想检查用户是否已确认他的电子邮件地址。
我如何让拥有Laravel
检查表值是否confirmed
值为 1。
在 config/auth.php 我已经设置'driver' => 'database'
因此,如果我正确理解文档,我就可以进行手动身份验证,我想我可以检查用户是否已确认他的帐户。
Laravel 在哪里执行匹配的用户名和密码检查?
如果您正在使用 Laravel Auth 开箱即用,您想看看认证控制器 https://github.com/laravel/laravel/blob/master/app/Http/Controllers/Auth/AuthController.php已经为您设置好了。
你会发现这使用了一个特质验证和注册用户 https://github.com/laravel/framework/blob/5.0/src/Illuminate/Foundation/Auth/AuthenticatesAndRegistersUsers.php向控制器添加行为。
在这个特质中你会找到方法postLogin https://github.com/laravel/framework/blob/5.0/src/Illuminate/Foundation/Auth/AuthenticatesAndRegistersUsers.php#L71-L89.
您将需要通过添加自己的方法来覆盖此方法postLogin
to the AuthController
。您可以复制并粘贴初学者的方法。
现在去看看Laravel 文档中的身份验证 http://laravel.com/docs/5.0/authentication。向下滚动到“根据条件对用户进行身份验证”的位置。
if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1]))
{
// The user is active, not suspended, and exists.
}
改变attempt()
代码在你的postLogin
方法来包含条件,如示例所示。在您的情况下,您可能希望通过以下条件'confirmed' => 1
而不是活动的,具体取决于您在用户表中对该字段的称呼。
这应该能让你继续前进!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)