2016-12-15 3 views
0

Mein Problem ist - registrierte Benutzer Daten (Benutzername, E-Mail, Passwort) auf remote (anderen) Server gespeichert. Wenn ein Benutzer versucht, sich mit E-Mail und Passwort anzumelden, wird eine Anfrage an diesen Remote-Server gesendet und Daten von dort (mit API) abgerufen. Das Problem ist - wenn ich Daten abrufe, wenn der Benutzer existiert, sollte ich ihn/sie einloggen (ich überprüfe nichts in der Datenbank). hier ist Laravel Login-MethodeOverride Laravel Login-Methode

public function login(Request $request) 
{ 
    $this->validateLogin($request); 

    // If the class is using the ThrottlesLogins trait, we can automatically throttle 
    // the login attempts for this application. We'll key this by the username and 
    // the IP address of the client making these requests into this application. 
    if ($this->hasTooManyLoginAttempts($request)) { 
     $this->fireLockoutEvent($request); 

     return $this->sendLockoutResponse($request); 
    } 

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

    if ($this->guard()->attempt($credentials, $request->has('remember'))) { 
     return $this->sendLoginResponse($request); 
    } 

    // If the login attempt was unsuccessful we will increment the number of attempts 
    // to login and redirect the user back to the login form. Of course, when this 
    // user surpasses their maximum number of attempts they will get locked out. 
    $this->incrementLoginAttempts($request); 


    return $this->sendFailedLoginResponse($request); 
} 

i bereits Methoden geschrieben i Daten abrufen müssen, aber wie soll ich melden Sie sich an, nachdem ich die Daten? sollte ich die login-methode überschreiben oder gibt es einen besseren weg?

Antwort

1

Hier ist, wie Benutzer manuell auf 5.2 anmelden:

if (/* your condition */) { 
    $user = User::where('email', $credentials['email'])->first(); 
    Auth::login($user); 
    return $this->handleUserWasAuthenticated($request, $throttles); 
} 

Hier ist für 5.3:

if (/* your condition */) { 
    $user = User::where('email', $credentials['email'])->first(); 
    Auth::login($user); 
    return $this->sendLoginResponse($request); 
} 
+0

Entschuldigung für die verspätete Antwort) –