/** * */ 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. }
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); }
/** * 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); } }