D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
tattooscyy
/
test
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Auth
/
Filename :
ThrottlesLogins.php
back
Copy
<?php namespace Illuminate\Foundation\Auth; use Illuminate\Support\Str; use Illuminate\Http\Request; use Illuminate\Cache\RateLimiter; use Illuminate\Auth\Events\Lockout; use Illuminate\Support\Facades\Lang; trait ThrottlesLogins { /** * Determine if the user has too many failed login attempts. * * @param \Illuminate\Http\Request $request * @return bool */ protected function hasTooManyLoginAttempts(Request $request) { return $this->limiter()->tooManyAttempts( $this->throttleKey($request), $this->maxAttempts(), $this->decayMinutes() ); } /** * Increment the login attempts for the user. * * @param \Illuminate\Http\Request $request * @return void */ protected function incrementLoginAttempts(Request $request) { $this->limiter()->hit($this->throttleKey($request)); } /** * Redirect the user after determining they are locked out. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\RedirectResponse */ protected function sendLockoutResponse(Request $request) { $seconds = $this->limiter()->availableIn( $this->throttleKey($request) ); $message = Lang::get('auth.throttle', ['seconds' => $seconds]); $errors = [$this->username() => $message]; if ($request->expectsJson()) { return response()->json($errors, 423); } return redirect()->back() ->withInput($request->only($this->username(), 'remember')) ->withErrors($errors); } /** * Clear the login locks for the given user credentials. * * @param \Illuminate\Http\Request $request * @return void */ protected function clearLoginAttempts(Request $request) { $this->limiter()->clear($this->throttleKey($request)); } /** * Fire an event when a lockout occurs. * * @param \Illuminate\Http\Request $request * @return void */ protected function fireLockoutEvent(Request $request) { event(new Lockout($request)); } /** * Get the throttle key for the given request. * * @param \Illuminate\Http\Request $request * @return string */ protected function throttleKey(Request $request) { return Str::lower($request->input($this->username())).'|'.$request->ip(); } /** * Get the rate limiter instance. * * @return \Illuminate\Cache\RateLimiter */ protected function limiter() { return app(RateLimiter::class); } /** * Get the maximum number of attempts to allow. * * @return int */ public function maxAttempts() { return property_exists($this, 'maxAttempts') ? $this->maxAttempts : 5; } /** * Get the number of minutes to throttle for. * * @return int */ public function decayMinutes() { return property_exists($this, 'decayMinutes') ? $this->decayMinutes : 1; } }