Пример #1
0
 public function loginAction()
 {
     $error = false;
     $facebook = new Facebook_Facebook(array('appId' => Mage::helper('facebooklogin')->getAppID(), 'secret' => Mage::helper('facebooklogin')->getAppSecret()));
     $fb_user = $facebook->getUser();
     if ($fb_user) {
         try {
             $user_profile = $facebook->api('/me');
         } catch (FacebookApiException $e) {
             $error = $this->__('Could not load user Facebook profile data.');
             $fb_user = null;
         }
     }
     if ($fb_user) {
         $error = false;
         $session = Mage::getSingleton('customer/session');
         $uid = $user_profile['id'];
         $email = $user_profile['email'];
         $first_name = $user_profile['first_name'];
         $last_name = $user_profile['last_name'];
         $customer = Mage::getModel('customer/customer');
         $customer->setWebsiteId(Mage::app()->getStore()->getWebsiteId())->loadByEmail($email);
         if ($customer->getId() !== NULL) {
             try {
                 $session->loginById($customer->getId());
             } catch (Exception $e) {
                 $error = $this->__($e->getMessage());
             }
         } else {
             $customer = Mage::getModel('customer/customer')->setId(null);
             $customer->setData('facebook_uid', $uid);
             $customer->setData('firstname', $first_name);
             $customer->setData('lastname', $last_name);
             $customer->setData('email', $email);
             $customer->getGroupId();
             $customer->save();
             if ($customer->isConfirmationRequired()) {
                 $customer->sendNewAccountEmail('confirmation', $this->_getSession()->getBeforeAuthUrl());
             } else {
                 $session->setCustomerAsLoggedIn($customer);
             }
         }
     }
     // 		die($this->getAfterLoginUrl());
     Mage::app()->getFrontController()->getResponse()->setRedirect($this->getAfterLoginUrl());
     // 		$this->_redirect($this->getAfterLoginUrl());
 }
Пример #2
0
 public function logoutAction()
 {
     $this->_helper->viewRenderer->setNoRender();
     $this->_helper->getHelper("layout")->disableLayout();
     $oFacebook = new Facebook_Facebook();
     $oModelUser = new Admin_Model_User();
     if (is_string($oFacebook->getUser())) {
         $sLogoutUrl = $oFacebook->getLogoutUrl();
         if ($this->_oAuth->hasIdentity()) {
             $this->_oAuth->clearIdentity();
             $oModelUser->setAskOnline($this->_nUserId, 0);
         }
         $oFacebook->destroySession();
         $this->_redirect($sLogoutUrl);
     } else {
         if ($this->_oAuth->hasIdentity()) {
             $this->_oAuth->clearIdentity();
             $oModelUser->setAskOnline($this->_nUserId, 0);
         }
     }
     $this->_redirect("/");
 }