Laravel自定义登录/密码重置的逻辑

时间:2018-05-17 06:33:44

标签: php authentication laravel-5

我需要为Laravel的身份验证定制逻辑。我通过覆盖credentials中的LoginController方法,在SO上找到了一个解决方案:

return ['email' => $request->{$this->username()}, 'password' => $request->password, 'status_id' => $whatever];

但是现在我发现了一个问题,用户仍然可以重置密码然后自动登录。那么如何禁止不允许登录的用户重置密码?

2 个答案:

答案 0 :(得分:0)

名为ResetsPasswords

resetPassword()特征有一种方法

Auth/ResetPasswordController中覆盖此内容并替换

$this->guard()->login($user);

使用密码重置后要实现的任何功能。

如果您想阻止被禁用的用户重置密码,请在继续密码重置之前使用中间件检查该帐户是否已被禁用。

答案 1 :(得分:0)

您可以为用户表isbanned创建一个除了布尔值之外的新列。并进一步检查请求重置密码的用户的此列值。如果值为TRUE,请不要给出重置链接,否则请给出。 您可以在下面看到此示例:

if (Auth::attempt(array('phone' => $request->input('phone'), 'password' => $request->input('password'), 'isactive' => '1', 'isbannes' => '0'), $remember)){ // your logic }

希望这会对你有所帮助。