注册&身份验证Laravel 5.2

时间:2016-06-04 14:07:05

标签: php laravel

下午好!

我正在使用Laravel 5.2创建和验证,我有以下问题,我在这种情况下使用带有谷歌的社交网站,用户可以正确注册,但在使用此代码的authenticacion失败。

有人可以帮帮我吗?

 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":"correo@gmail.com","created_at":"2016-06-04 14:15:07","updated_at":"2016-06-04 14:15:07"}

2 个答案:

答案 0 :(得分:0)

使用

Auth::loginUsingId($findUser['id']); 

https://laravel.com/docs/5.1/authentication#other-authentication-methods

登录表单ID的方法

答案 1 :(得分:0)

问题在于,当您致电Auth::attempt()时,它会收到明文密码,但您传递的是哈希密码。这就是它失败的原因。

由于您选择了用户对象并拥有ID,因此您可以拨打\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";
 }