2016-03-25 1 views
3

Ich bin eine Laravel 5.2 Anwendung erstellt; Ich muss Fehler Anmeldeversuche begrenzen. Ich bin ein AuthController mit folgendem Code erstellt; Aber funktioniert nicht Logging Versuch Sperre.Begrenzen der Anmeldeversuche in Laravel 5.2

<?php 

namespace App\Http\Controllers\Auth; 

use App\User; 
use Validator; 
use Auth; 
use URL; 

use Illuminate\Http\Request; 
use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; 

class AuthController extends Controller 
{ 


use AuthenticatesAndRegistersUsers; 

    protected $maxLoginAttempts=5; 
    protected $lockoutTime=300; 


/** 
* Create a new authentication controller instance. 
* 
* @return void 
*/ 
public function __construct() 
{ 
    $this->middleware('guest', ['except' => 'getLogout']); 
    $this->loginPath = URL::route('login'); 
    $this->redirectTo = URL::route('dashboard'); //url after login 
    $this->redirectAfterLogout = URL::route('home'); 
} 

public function index() 
{ 
    return 'Login Page'; 
} 


/** 
* Handle a login request to the application. 
* 
* @param \Illuminate\Http\Request $request 
* @return \Illuminate\Http\Response 
*/ 
public function postLogin(Request $request) 
{ 
    $this->validate($request, [ 
     'username' => 'required', 'password' => 'required', 
    ]); 


    $throttles = $this->isUsingThrottlesLoginsTrait(); 

    if ($throttles && $this->hasTooManyLoginAttempts($request)) { 
     return $this->sendLockoutResponse($request); 
    } 

    $credentials = $this->getCredentials($request); 

    if (Auth::attempt($credentials, $request->has('remember'))) { 
     return redirect()->intended($this->redirectPath()); 
    } 



    if ($throttles) { 
     $this->incrementLoginAttempts($request); 
    } 


    return redirect($this->loginPath) 
     ->withInput($request->only('username', 'remember')) 
     ->withErrors([ 
      'username' => $this->getFailedLoginMessage(), 
     ]); 
} 

/** 
* Get the needed authorization credentials from the request. 
* 
* @param \Illuminate\Http\Request $request 
* @return array 
*/ 
protected function getCredentials(Request $request) 
{ 
    return $request->only('username', 'password'); 
} 


/** 
* Create a new user instance after a valid registration. 
* 
* @param array $data 
* @return User 
*/ 
protected function create(array $data) 
{ 
    return User::create([ 
     'name' => $data['name'], 
     'username' => $data['username'], 
     'password' => bcrypt($data['password']), 
    ]); 
    } 
} 

Nach vielen Fehler anmelden ihre ist keine Fehlermeldung angezeigt. Ich bin eine Zeile angezeigt werden Fehler in login.blade.php Datei

Antwort

2

Angenommen, Sie haben den make:auth Handwerkerbefehl von Laravel implementiert.

protected $maxLoginAttempts=5;-protected $maxAttempts = 5;

und

protected $lockoutTime=300;-protected $decayMinutes = 5; //in minutes

: Innerhalb des loginController, die Eigenschaften ändern
3

Sie verwenden müssen hinzugefügt ThrottlesLogins Eigenschaft in Ihrem Controller

.... 
use AuthenticatesAndRegistersUsers, ThrottlesLogins ; 
...