middleware('guest')->except('logout'); } public function redirectToProvider($provider) { return Socialite::driver($provider)->redirect(); } public function handleProviderCallback($provider) { $user = Socialite::driver($provider)->user(); $authUser = $this->findUser($user, $provider); Auth::login($authUser, true); return redirect($this->redirectTo); } public function findUser($user, $provider) { $authUser = User::where('social_id', $user->id . '_' . $provider)->first(); if($authUser) { return $authUser; } return User::create([ 'name' => $user->getName(), 'email' => $user->getEmail(), 'social_id' => $user->getId() . '_' . $provider, ]); } }