Как увеличить время lockoutTime с секунд до минут в laravel после слишком большого количества неудачных попыток входа в систему?
Ниже приведены мои методы LoginController после трех неудачных попыток входа в систему, он покажет мне сообщение "Слишком много попыток входа в систему. Повторите попытку через 9 секунд". Я хочу увеличить время до 10 минут.
Мой логин Контроллер и конструктор
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Http\Request;
use Auth;
use App\User;
class LoginController extends Controller
{
use AuthenticatesUsers;
protected $auth;
protected $lockoutTime;
protected $maxLoginAttempts;
protected $redirectTo = '/';
public function __construct(Guard $auth)
{
$this->middleware('guest', ['except' => 'logout']);
$this->auth = $auth;
$this->lockoutTime = 1;
$this->maxLoginAttempts = 3;
}
}
Способ входа в систему:
public function login(Request $request)
{
$this->validateLogin($request);
if ($this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request)
}else{
$username = $request->get('email');
$password = $request->get('password');
$remember = $request->get('remember');
if ($this->auth->attempt([
'email' => $username,
'password' => $password,
'status' => 1,
], $remember == 1 ? true : false)) {
Auth::logoutOtherDevices($password);
$request->session()->regenerate();
$this->clearLoginAttempts($request);
if (Auth::check() && Auth::user()->roles()->first()->name == 'admin') {
return redirect('/admin/dashboard');
} else {
return redirect('/institute/inst-dashboard');
}
}else {
$this->incrementLoginAttempts($request);
return redirect()->back()
->with('error','Incorrect username or password.')
->with('status', 'danger')
->withInput();
}
}
}
Слишком много методов
protected function hasTooManyLoginAttempts(Request $request)
{
return $this->limiter()->tooManyAttempts(
$this->throttleKey($request), $this->maxLoginAttempts, $this->lockoutTime
);
}
1 ответ
В вашем app/Http/Controllers/Auth/LoginController.php
, вы можете добавить два свойства:
class LoginController extends Controller
{
protected $maxAttempts = 3; // Default is 5
protected $decayMinutes = 2; // Default is 1
// ...
}