2016-06-04 4 views
0

Добрый день!Регистрация & Аутентификация Laravel 5.2

Я создаю и аутентифицирую с помощью Laravel 5.2, и у меня есть следующая проблема: я использую Socialite с Google для этого случая, пользователь может зарегистрироваться правильно, но в аутентификации с этим кодом не удается.

Может ли кто-нибудь мне помочь?

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"; 
     } 
    } 

Результат делает эхо в $ 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

Любое сообщение об ошибке? – weigreen

+0

Вы установили охрану в auth.php? – DsRaj

+0

Этот аутентификатор работает, если я отправляю электронное письмо и passowrd по всей форме, но с этой формой возвращает нет, пароль был защищен в модели, но мне нужно пройти аутентификацию. – jc1992

ответ

0

Вопрос заключается в т когда вы вызываете Auth::attempt(), он ожидает пароль открытого текста, но вы передаете хешированный пароль. Вот почему он терпит неудачу.

Поскольку вы выбрали объект User и имеете идентификатор, вы можете позвонить \Auth::loginUsingId(), как показано ниже.

Также вы вызываете isEmpty() на номер $buscarUsuario, который, как представляется, не существует. Это должно быть $findUser.

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