2016-06-04 20 views
0

Guten Tag!Registrierung & Authentifizierung Laravel 5.2

Ich erstelle und authentifiziere mich mit Laravel 5.2 und ich habe das folgende Problem, ich benutze Socialite mit Google für diesen Fall, der Benutzer könnte richtig registrieren, aber in der Authenticacion mit diesem Code fehlschlägt.

Könnte mir jemand helfen?

public function handleProviderCallback(){ 
     $user = Socialite::driver('google')->user(); 
     $usuario = new User(); 
     $usuario->name=$user->name; 
     $usuario->email=$user->email; 
     $usuario->password=\Hash::make("1234"); 
     $usuario->photo=$user->avatar; 
     $usuario->role_id=1; 
     $usuario->isLocked=0; 
     $usuario->save();  
     $findUser= User::where('email','=',$usuario->email)->get(); 
     if (!$buscarUsuario->isEmpty()) { 
      if (\Auth::attempt(['email' => $findUser[0]->email, 'password' => $findUser[0]->password])) 
      { 
       return redirect()->intended('profile'); 
      }else{ 
       echo "NO"; 
       //return \Redirect::back();  
      } 

     }else{ 
      echo "NOTHING"; 
     } 
    } 

Das Ergebnis macht Echo in $ buscarUsuario

[{"id":81,"name":"Kiko","first_surname":"","last_surname":"","descripcion":"","email":"[email protected]","created_at":"2016-06-04 14:15:07","updated_at":"2016-06-04 14:15:07"} 
+0

Eine Fehlermeldung? – weigreen

+0

hast du guard in auth.php eingerichtet? – DsRaj

+0

Diese Authentifizierung funktioniert, wenn ich die E-Mail und Password im Formular sende, aber mit diesem Formular gibt Nein, das Passwort wurde im Modell geschützt, aber ich muss authentifizieren. – jc1992

Antwort

0

Das Problem ist, t Wenn Sie Auth::attempt() aufrufen, erwartet es das Klartextkennwort, aber Sie übergeben das Hash-Kennwort. Deshalb schlägt es fehl.

Da Sie das Benutzerobjekt ausgewählt haben und die ID haben, können Sie \Auth::loginUsingId() wie unten anrufen.

Sie rufen auch isEmpty() auf $buscarUsuario, die nicht zu existieren scheint. Das sollte $findUser sein.

if(!$findUser->isEmpty()){ 
    if (\Auth::loginUsingId($findUser[0]->id)) 
    { 
     return redirect()->intended('profile'); 
    }else{ 
     echo "NO"; 
     //return \Redirect::back();  
    } 
} else { 
    echo "NO"; 
}