Laravel 5.7版-
我当前正在尝试获取登录尝试的次数。 Laravel的文档没有为此提供指南。但是我认为通过回溯所有被调用的方法,我将更接近于自己找到答案。
无论如何,我的目标是在锁定之前显示“尝试登录/最大登录尝试次数”。
在Auth \ LoginController中,我可以轻松获取maxAttempts的数量,甚至可以设置首选的最大尝试次数:
protected $maxAttempts = 3;
太好了。因此,我创建了一个函数来获取登录尝试的详细信息:
public function getCurrentAttempts() {
$limiter = $this->limiter();
$login_attempts = array(
// gets the number of current login attempted
'currentAttempts' => $limiter->hit('user'),
// get the number of max attempts allowed
'maxAttempts' => $this->maxAttempts(),
// return 1 or 0 if current login attempts reached max attempts
'locked' => $this->limiter()->tooManyAttempts('user', $this->maxAttempts())
);
return view('auth.login')->withLoginAttempts(
$login_attempts
);
}
请注意:
$this->limiter()->hit(key)
<<<需要一个密钥。我真的不知道它期望什么样的钥匙。帮助任何人?我输入了“用户”,由于某种原因,我已将正确的尝试次数发回给我。但这是正确的吗?这是$limiter->hit()
所期望的“钥匙”吗? “键”与Request无关吗?
其他注意事项:
很好的是,从LoginController中,我可以简单地通过$this->maxAttempts()
来轻松获取$ maxAttempts值,这真的很不错。但是当前登录尝试的次数呢?将其放在同一位置不是理想的选择吗?那就是我想要得到的。
答案 0 :(得分:0)
多次阅读Laravel文档后,我开始尝试在框架中内置的各种类,这些类使我可以实现自己的目标(获取当前的登录尝试次数)
在LoginController中,我们必须use Illuminate\Http\Request;
,然后通过方法注入,可以在方法中捕获Request $request
。
然后,我能够获取“ throttleKey”,这是我需要的密钥,如下所示:
在LoginController的方法主体中,$this->limiter()->hit($this->throttleKey($request));