2017-10-19 2 views
0

Wie würde ich die Laravel Login mit zusätzlichen Validierungsregeln erweitern. Ich möchte überprüfen, ob der Benutzer eine Rolle bei der erfolgreichen Anmeldung hat. Wenn dem Benutzer keine Rolle zugewiesen ist, möchte ich den Anmeldevorgang ablehnen.Verlängern Laravel Login Validierung

Ich sehe, dass in LoginController ich die Login-Methode außer Kraft setzen kann

public function login(\Illuminate\Http\Request $request) 
{ 
    //dd($this->validateLogin($request)); 
    parent::login($request); 
} 

aber ich habe keine Ahnung, wie ich das Objekt Benutzer wieder tun

Antwort

0

Wenn ich es richtig verstehe, muss der Benutzer selbst authentifizieren und dann wollen Sie die Rolle überprüfen. Es ist nicht erforderlich, eine bestimmte Rolle zu haben. Wenn ja, können Sie das authentifizierte() -Methode auf Ihrem LoginController wie dies außer Kraft setzen: (Sie haben Verwendung Illuminate \ Http \ Antrag schreiben; auf die Datei-

/** 
* The user has been authenticated. 
* 
* @param \Illuminate\Http\Request $request 
* @param mixed $user 
* @return mixed 
*/ 
protected function authenticated(Request $request, $user) 
{ 
    if(empty($user->role)) { 
     $this->guard()->logout(); 
     return back()->withErrors(['There is no role specified']); 
    } 
} 

Wenn Sie den Benutzer mögen. haben spezifische Rolle können Sie die Anmeldeinformationen() -Methode in der LoginController überschreiben:

protected function credentials(Request $request) 
{ 
    $credentials = $request->only($this->username(), 'password'); 
    $credentials['role'] = 'requiredRole'; 
    return $credentials; 
} 
+0

Vielen Dank das ist, was ich suche! – fefe