Beispiel #1
0
 $facebookClient = new FacebookProvider($database);
 $accessToken = $facebookClient->exchangeCodeForAccessToken($headersHandler->getHeader('clientId'), $headersHandler->getHeader('redirectUri'), $headersHandler->getHeader('code'));
 $facebookClient->setAccessToken($accessToken);
 $facebookClient->extendAccessToken();
 /*$facebookClient->retrieveAccessTokenFromRedirect();
   $accessToken = $facebookClient->getAccessToken();*/
 $userData = $facebookClient->getUserData();
 $outputHandler->write("user data: ");
 $outputHandler->write($userData);
 $outputHandler->write("access token: ");
 $outputHandler->write($accessToken);
 if ($headersHandler->isAuthenticated()) {
     // Link accounts if not linked previously and facebookID does not repeat
     $user = new User($database, $headersHandler->getBearer());
     $facebookClient->setUserID($user->getID());
     if ($facebookClient->facebookIDRepeatsAmount() == 0) {
         // FacebookID does not exist in the FB yet, can link
         $facebookClient->save();
         // update JWT
         $user->fetchProviders();
         $jwt = $user->getJWT();
         $headersHandler->sendJSONData(['token' => $jwt]);
         $outputHandler->write('linking successful');
         $outputHandler->write($jwt);
     } else {
         // Duplicate id
         $headersHandler->sendHeaderCode(401);
         $headersHandler->sendJSONData(['error' => 'facebook id duplicate']);
         $outputHandler->write("facebook id duplicate");
     }
 } else {