2016-10-22 4 views
1

Ich arbeite mit Laravel 5.2, und ich habe ein Problem mit der benutzerdefinierten Authentifizierung. Der Benutzer wird nicht angemeldet.
Hier können Sie meinen Code für die Funktion finden:Laravel Authentifizierung funktioniert nicht

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

    $email = $request->get('email'); 
    $user = User::where('email', $email)->first(); 

    if(! is_null($user)) 
    { 
     if (Auth::login($user)) 
     { 
      return redirect('/profile'); 
     } 
    } 
    else 
    { 
     $this->register($request); 
    } 
} 

An der Stelle des Auth :: Login, habe ich versucht, auch die Funktion Versuch und überprüfen, aber nichts funktioniert ...
Es meldet den Benutzer , aber es zeigte eine leere Seite, ohne auf die URL umzuleiten.

Antwort

1

Sie eine leere Seite anstelle des Sehens ‚/ profile‘ zu sein umleiten, weil Ihre zweite, wenn die Bedingung nicht wahr ist, wie

Auth::login($user) 

nie null zurück, auch wenn Benutzer in angemeldet ist also im Grunde

if (Auth::login($user)) 
    { 
     return redirect('/profile'); 
    } 

Dies ist, wenn Bedingung in Ihrem Fall nie erfüllt ist.

können Sie versuchen, diese

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

    $email = $request->get('email'); 
    $user = User::where('email', $email)->first(); 

    if(! is_null($user)) 
    { 
     Auth::login($user); 
     if (Auth::check()) 
     { 
      return redirect('/profile'); 
     } 
    } 
    else 
    { 
     $this->register($request); 
    } 
} 


Auth::check(); 

true zurück, wenn der Benutzer angemeldet ist und wird zu ‚/ profile‘ weitergeleitet.