/**
  * 
  */
 public function verifyCredentials(Request $request)
 {
     $config = app()->make('config');
     $fb = new Facebook\Facebook(['app_id' => $config->get('services.facebook.client_id'), 'app_secret' => $config->get('services.facebook.client_secret'), 'default_graph_version' => 'v2.5']);
     $helper = $fb->getJavaScriptHelper();
     try {
         // $accessToken = $helper->getAccessToken();
         $accessToken = new AccessToken($request->input('accessToken'), $request->input('expiresIn'));
     } catch (Facebook\Exceptions\FacebookResponseException $e) {
         // When Graph returns an error
         echo 'Graph returned an error: ' . $e->getMessage();
         exit;
     } catch (Facebook\Exceptions\FacebookSDKException $e) {
         // When validation fails or other local issues
         echo 'Facebook SDK returned an error: ' . $e->getMessage();
         exit;
     }
     if (!isset($accessToken)) {
         echo 'No cookie set or no OAuth data could be obtained from cookie.';
         exit;
     }
     try {
         // Returns a `Facebook\FacebookResponse` object
         $response = $fb->get('/me?fields=id,name,email,picture,friends', $accessToken->getValue());
         /*$friendsResponse = $fb->get('/me/friends', $accessToken->getValue());
           //$result['data'];
           foreach($friendsResponse->getGraphEdge() as $node) {
             var_dump($node);
           }
           exit;*/
     } catch (Facebook\Exceptions\FacebookResponseException $e) {
         echo 'Graph returned an error: ' . $e->getMessage();
         exit;
     } catch (Facebook\Exceptions\FacebookSDKException $e) {
         echo 'Facebook SDK returned an error: ' . $e->getMessage();
         exit;
     }
     // Logged in
     $user = $response->getGraphUser();
     // var_dump($user);exit;
     // echo 'Name: ' . $user['name'];
     // $_SESSION['fb_access_token'] = (string) $accessToken;
     $authUser = $this->findOrCreateUser($user);
     app()['auth']->login($authUser, true);
     $hasher = app()->make('hash');
     /*var_dump( $hasher->make(
           "app()->make('config')->get('app.key')" . $authUser->facebook_id
       ));exit;*/
     return ['username' => $authUser->email, 'password' => app()->make('config')->get('app.pass_prefix') . $authUser->facebook_id];
     //return redirect()->route('home');
     // get posted credentials.
     // verify credentials against FB.
     // fetch user data.
     // check user existance: true => return user.
     // check user existance: false => register and return user.
 }
Beispiel #2
0
 public function testAnAccessTokenCanExpire()
 {
     $expireTime = time() - 100;
     $appToken = new AccessToken('foo_token', $expireTime);
     $hasExpired = $appToken->isExpired();
     $this->assertTrue($hasExpired, 'Expected 100 second old access token to be expired.');
 }
 /**
  * Returns the URL to send the user in order to log out of Facebook.
  *
  * @param AccessToken|string $accessToken The access token that will be logged out.
  * @param string             $next        The url Facebook should redirect the user to after a successful logout.
  * @param string             $separator   The separator to use in http_build_query().
  *
  * @return string
  *
  * @throws FacebookSDKException
  */
 public function getLogoutUrl($accessToken, $next, $separator = '&')
 {
     if (!$accessToken instanceof AccessToken) {
         $accessToken = new AccessToken($accessToken);
     }
     if ($accessToken->isAppAccessToken()) {
         throw new FacebookSDKException('Cannot generate a logout URL with an app access token.', 722);
     }
     $params = ['next' => $next, 'access_token' => $accessToken->getValue()];
     return 'https://www.facebook.com/logout.php?' . http_build_query($params, null, $separator);
 }
Beispiel #4
0
 /**
  * Set facebook token
  *
  * @param \Facebook\Authentication\AccessToken $token
  *
  * @return Apishka_SocialLogin_Provider_Facebook this
  */
 private function setFacebookToken(\Facebook\Authentication\AccessToken $token)
 {
     $this->getStorage()->set($this->getAlias(), 'access_token', $token->getValue())->set($this->getAlias(), 'expiresAt', $token->getExpiresAt())->set($this->getAlias(), 'auth_data', ['access_token' => $token->getValue(), 'expiresAt' => $token->getExpiresAt()]);
     $this->_facebook_token = $token;
     return $this;
 }
 /**
  * @param                                      $username
  * @param \Facebook\Authentication\AccessToken $accessToken
  * @param                                      $mediaPlatformId
  *
  * @return mixed
  */
 protected function _saveUser($username, $accessToken, $mediaPlatformId)
 {
     $saveData = array('MediaPlatformUser' => array('username' => $username, 'media_platform_id' => $mediaPlatformId), 'OauthToken' => array('access_token' => $accessToken->getValue(), 'token_expires' => $this->_getExpirationDate($accessToken)));
     return $this->MediaPlatformUser->saveOauthUser($saveData);
 }
 /**
  * Cache the Facebook access token string
  * @param AccessToken|string $accessToken
  * @throws FacebookAuthenticationException
  */
 protected function setAccessToken($accessToken)
 {
     if ($accessToken && Yii::app()->session) {
         Yii::app()->session['fb_token'] = (string) $accessToken;
     }
     if (is_string($accessToken)) {
         $accessToken = new AccessToken($accessToken);
     }
     if ($accessToken instanceof AccessToken) {
         if ($accessToken->getExpiresAt()) {
             Yii::app()->session['fb_token_expires'] = $accessToken->getExpiresAt();
         }
         $this->_token = $accessToken;
         // this way it will automatically be used by all API requests
         $this->_fb->setDefaultAccessToken($accessToken);
     }
 }