public function fb_login() { echo "sdxcxcfsdf"; echo "i am here"; $this->layout = 'ajax'; FacebookSession::setDefaultApplication('195891030745689', '130d8f7bcae67a9a71d2c1c372896814'); $helper = new FacebookRedirectLoginHelper(FACEBOOK_REDIRECT_URI); echo "======="; $session = $helper->getSessionFromRedirect(); if (isset($_SESSION['token'])) { pr($_SESSION); echo "<<<<<<>>>>>>"; $session = new FacebookSession($_SESSION['token']); try { echo "XXXXXXXXXX"; $session->validate(FACEBOOK_APP_ID, FACEBOOK_APP_SECRET); } catch (FacebookAuthorizationException $e) { echo $e->getMessage(); } } $data = array(); $fb_data = array(); if (isset($session)) { $_SESSION['token'] = $session->getToken(); $request = new FacebookRequest($session, 'GET', '/me'); $response = $request->execute(); $graph = $response->getGraphObject(GraphUser::className()); $fb_data = $graph->asArray(); $id = $graph->getId(); $image = "https://graph.facebook.com/" . $id . "/picture?width=100"; if (!empty($fb_data)) { $result = $this->User->findByEmail($fb_data['email']); if (!empty($result)) { if ($this->Auth->login($result['User'])) { $this->Session->setFlash(FACEBOOK_LOGIN_SUCCESS, 'default', array('class' => 'message success'), 'success'); //$this->redirect(BASE_PATH); } else { $this->Session->setFlash(FACEBOOK_LOGIN_FAILURE, 'default', array('class' => 'message error'), 'error'); //$this->redirect(BASE_PATH.'login'); } } else { $data['email'] = $fb_data['email']; $data['first_name'] = $fb_data['first_name']; $data['social_id'] = $fb_data['id']; $data['picture'] = $image; $data['uuid'] = String::uuid(); $this->User->save($data); if ($this->User->save($data)) { $data['id'] = $this->User->getLastInsertID(); if ($this->Auth->login($data)) { $this->Session->setFlash(FACEBOOK_LOGIN_SUCCESS, 'default', array('class' => 'message success'), 'success'); //$this->redirect(BASE_PATH); } else { $this->Session->setFlash(FACEBOOK_LOGIN_FAILURE, 'default', array('class' => 'message error'), 'error'); //$this->redirect(BASE_PATH.'index'); } } else { $this->Session->setFlash(FACEBOOK_LOGIN_FAILURE, 'default', array('class' => 'message error'), 'error'); //$this->redirect(BASE_PATH.'index'); } } } else { $this->Session->setFlash(FACEBOOK_LOGIN_FAILURE, 'default', array('class' => 'message error'), 'error'); //$this->redirect(BASE_PATH.'index'); } } }
protected function action() { //Init app with app id and secret FacebookSession::setDefaultApplication('416201525206070', 'db946f783550299dcf77faf9f09a8f41'); //Login helper with redirect_uri $helper = new FacebookRedirectLoginHelper('http://www.ituk.it/cinderella/fblogin'); try { $session = $helper->getSessionFromRedirect(); } catch (FacebookRequestException $ex) { //Facebook returns an error Session::setObj(Session::SYSMSG, 'Errore durante l\'autenticazione con Facebook, per favore riprovare più tardi.'); $this->redirect = 'message'; exit; } catch (Exception $ex) { //Validation fails or other local issues Session::setObj(Session::SYSMSG, 'Errore durante l\'autenticazione con Facebook, per favore riprovare più tardi.'); $this->redirect = 'message'; exit; } //See if we have a session if (isset($session)) { //Graph api request for user data $request = new FacebookRequest($session, 'GET', '/me'); $response = $request->execute(); //Get response $graphObject = $response->getGraphObject(); $fbid = $graphObject->getProperty('id'); // To Get Facebook ID $fbfullname = $graphObject->getProperty('name'); // To Get Facebook full name $fbfirstname = $graphObject->getProperty('first_name'); // To Get Facebook first name $fblastname = $graphObject->getProperty('last_name'); // To Get Facebook last name $fbemail = $graphObject->getProperty('email'); // To Get Facebook email ID //Check if already logged in with Facebook //Create new Facebook user $fb_user = new UtenteFb($fbid); if (!$fb_user->hereIam()) { //Save credentials as regular user $objDateTime = new DateTime('NOW'); $fakepassw = md5($objDateTime->format('c')); $fakeemail = $fakepassw . '@facebook.com'; $fb_user->setNome($fbfirstname); $fb_user->setCognome($fblastname); $fb_user->setEmail(isset($fbemail) && strlen($fbemail) > 0 ? $fbemail : $fakeemail); $fb_user->setUsername('FacebookUser'); $fb_user->set_password($fakepassw); $fb_user->save(); //Save as Facebook user $fb_user->setFbId($fbid); $fb_user->setAvatarUrl($fb_user->getAvatarUrl()); //Save Facebook credentials $fb_user->saveAsFbUser(); } //Login user Session::setObj(Session::UTENTE, $fb_user); Session::setObj(Session::SYSMSG, 'Benvenuto ' . $fb_user->getNome() . ' ' . $fb_user->getCognome()); $this->redirect = 'message'; } else { //Try Facebook Authentication $loginUrl = $helper->getLoginUrl(); $this->redirect = $loginUrl; } }