laravel - 达到失败登录尝试总数后如何隐藏登录表单?
问题描述
我想隐藏登录表单并显示错误消息,但我不能。
我试图将代码放在下面,以重写显示表单的控制器上的操作,但是检查太多登录尝试的方法似乎不起作用并且永远不会返回 true。
public function showLoginForm(Request $request)
{
if (method_exists($this, 'hasTooManyLoginAttempts') &&
$this->hasTooManyLoginAttempts($request) ) {
$seconds = $this->limiter()->availableIn($this->throttleKey($request));
return view('auth.block', array(
'seconds' => $seconds
));
}
return view('auth.login');
}
我使用 php artisan make 管理身份验证过程:auth 登录控制器是 Laravel 生成的默认控制器,唯一的变化是显示表单的操作。
解决方案
该函数hasTooManyLoginAttempts()
需要在 中$request
的username
(通常是电子邮件)作为一个键来了解 是否user
已达到他的最大登录尝试次数。
如果在 $request 中没有username
带有值的函数无法验证user
登录尝试。
因此,您无法真正知道想要get
登录表单的用户是谁,只有在他提交表单后才能知道谁是。
恕我直言,唯一的方法可能是向username
GET 请求添加参数,但您应该为其提供一些解决方法:cookie、会话等。
推荐阅读
- python - Pandas - 使用条件和函数输入应用 & lambda
- appium - 间歇性发生appium未知服务器端错误
- c# - 将来自不同文本框的输入写入记事本 C# 上的一个字符串
- php - 从 PHP 脚本启动和停止 npm
- c# - 使用 TextBox 过滤 DataGridView
- python - 错误提示“无法解压不可迭代的 int 对象”
- php - 在 PHP 中获取以前的 URL 路径
- amazon-web-services - 如何使用 terraform 获取默认的 vpc id
- c++ - Clang c++11 缩小
- android - 如何修复代码以从 Android App 中的 Fragment 调用 Activity?