介绍
这篇文章将为大家详细讲解有关Laravel如何实现登录失败次数限制,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
在用户身份验证的情况下,Laravel具有内置的身份验证系统。我们可以根据要求轻松修改它。身份验证中包含的功能之一是节流。
<>强为什么我们需要节流保护? 强>
基本上,节流是用来保护暴力攻击的。它将在一定时间内检查登录尝试。在短登录中,节流会计算用户或机器人尝试失败的登录尝试次数。
<强>使用自定义登录实现限制强>
默认情况下,在内置身份验证控制器中实现限制。但是,如果我们需要实现它到自定义登录呢?
实现自定义登录限制非常容易。首先,我们必须将ThrottlesLogins特征包含到您的控制器中。
使用说明\ \ Auth \ ThrottlesLogins基础;
引用>现在,将此ThrottlesLogins特征加到控制器中。
namespace 应用\ Http \控制器; use 照亮\ Http \请求; use 照亮\ \ Auth \ ThrottlesLogins基础; class AuthController  extends 控制器 { ,use ThrottlesLogins; ,……现在转到用于对用户进行身份验证的方法。在我的例子中,我使用了登录()发布方法。并粘贴以下代码:
public function 登录(Request $请求) { ,//Authenticate 输入 美元,请求→验证([ ,& # 39;用户名# 39;,=祝辞,& # 39;需要# 39;,, ,& # 39;密码# 39;,=祝辞,& # 39;要求|分钟:6 |马克斯:18 & # 39; ,]); ,//If 从而class is using 从而ThrottlesLogins 特征,还要automatically 节流我方表示歉意//大敌;从而,login attempts for 却;能够应用程序只我们# 39;ll key 却;能够by 从而username //大敌;从而,IP address of 从而client making these requests into 却;能够应用程序。 ,if (method_exists ($ this, & # 39; hasTooManyLoginAttempts& # 39;),,, ,$ this→hasTooManyLoginAttempts(请求)美元),{ 美元,美元这→fireLockoutEvent(请求); ,return 这→美元sendLockoutResponse($请求); ,} , 以前,....... >首先,我们验证了用户提交的输入,然后实现了hasTooManyLoginAttempts()方法。此方法将检查用户在某个时间是否执行过一定数量的失败尝试,然后系统将通过sendLockoutResponse (),方法阻止该用户。
现在,我们必须通过incrementLoginAttempts()方法指示对ThrottlesLogins特质的失败登录尝试。
如果(,身份验证:尝试((& # 39;用户名# 39;,=祝辞,用户名、美元,& # 39;密码# 39;,=祝辞,$密码]),){ ,//Redirect 用appropriate dashboard } else { ,//If 从而login attempt was unsuccessful will increment 我方表示歉意,number of 尝试 ,//用login 以及redirect 从而user back 用,login 形式只Of 当然,when 这 ,//user surpasses  their maximum number of attempts 活动对象;will get locked 。 美元,美元这→incrementLoginAttempts(请求); ,return 重定向()→() →withInput才能($请求→所有()) →才能withErrors([& # 39;错误# 39;,=祝辞,& # 39;Please check your username /,密码# 39;公司]); }您还可以通过maxAttempts美元和美元decayMinutes属性更改允许的最大尝试次数和限制的分钟数。在这里,您可以找到完整的代码。
& lt; php ? namespace 应用\ Http \控制器; use 照亮\ Http \请求; use 照亮\ \ Auth \ ThrottlesLogins基础; class AuthController  extends 控制器 { ,use ThrottlesLogins;/* * *才能,从而maximum number of attempts 用允许。 ,* *,才能@return int ,*/,protected maxAttempts 美元;=,5;/* * *才能,从而number of minutes 用throttle 。 ,* *,才能@return int ,*/,protected decayMinutes 美元;=,1; ,public function 登录(Request 美元请求) ,{//才能,Authenticate 输入 美元才能请求→验证([ ,,& # 39;用户名# 39;,=祝辞,& # 39;需要# 39;,, ,,& # 39;密码# 39;,=祝辞,& # 39;要求|分钟:6 |马克斯:18 & # 39; )才能);//才能,If 从而class is using 从而ThrottlesLogins 特征,还要automatically 节流我方表示歉意//才能,从而login attempts for 却;能够应用程序只我们# 39;ll key 却;能够by 从而username //才能,从而IP address of 从而client making these requests into 却;能够应用程序。 if 才能;(method_exists ($ this, & # 39; hasTooManyLoginAttempts& # 39;),,, ,,这→美元hasTooManyLoginAttempts(请求)美元),{ ,,这→美元fireLockoutEvent($请求); ,,return 美元这→sendLockoutResponse($请求); ,,} 时间=美元才能username 美元请求→用户名; 时间=美元才能password 美元请求→密码; null null null null null null null null null null null null null null null nullLaravel如何实现登录失败次数限制