我需要为Laravel的身份验证定制逻辑。我通过覆盖credentials
中的LoginController
方法,在SO上找到了一个解决方案:
return ['email' => $request->{$this->username()}, 'password' => $request->password, 'status_id' => $whatever];
但是现在我发现了一个问题,用户仍然可以重置密码然后自动登录。那么如何禁止不允许登录的用户重置密码?
答案 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
}
希望这会对你有所帮助。