Example #1
0
 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');
         }
     }
 }
Example #2
0
 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&ugrave; 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&ugrave; 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;
     }
 }