下午好!
我正在使用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"}
答案 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";
}