$checkIDQuery->execute(); $checkIDData = $checkIDQuery->fetch(PDO::FETCH_ASSOC); if ($checkIDData) { // Already exists, log in existing user $user = new User($database); $user->fetchUser($checkIDData['user_id']); $jwt = $user->getJWT(); $headersHandler->sendJSONData(['token' => $jwt]); $outputHandler->write($jwt); } else { // Does not exist, register user $user = new User($database); // putting in a placeholder password, BAD PRACTICE $user->newUser($userGoogleData['email'], $userGoogleData['name'], md5("a")); /// add Google as a provider $googleProvider->setUserID($user->getID()); $googleProvider->setGoogleID($userGoogleData['id']); $googleProvider->getDataFromDB(); $googleProvider->save(); // refresh providers $user->fetchProviders(); $jwt = $user->getJWT(); $headersHandler->sendJSONData(['token' => $jwt]); $outputHandler->write($jwt); } } break; case "facebook": $code = $headersHandler->getHeader('code'); $facebookClient = new FacebookProvider($database); $accessToken = $facebookClient->exchangeCodeForAccessToken($headersHandler->getHeader('clientId'), $headersHandler->getHeader('redirectUri'), $headersHandler->getHeader('code'));