0

I have an app with a local login system. What I am trying to do is allow the user to connect their facebook account to their account. I am using Zend Auth for my main local login and a facebook auth by Michael Krotscheck.

I can connect with facebook fine but because I am using Zend_Auth the facebook data is over writing the main local login storage. All I need is the users email and facebook id and insert them into my users table.

The code below shows how it all works, I do not know another alternative than using Zend Auth for the facebook login. Anybody had the same issues? Advice would be very helpful.

$auth = Zend_Auth::getInstance();

    $adapter = $this->_getFacebookAdapter();

    $result = $auth->authenticate($adapter);

        if ($result->isValid()) {
            $toStore = array('identity' => $auth->getIdentity());

            // for facebook
            $msgs = $result->getMessages();
            $toStore['properties'] = (array) $msgs['user'];
            $toStore['provider'] = "facebook";

            $auth->getStorage()->write($toStore);

            $this->_helper->FlashMessenger('Successful authentication');
            //return $this->_redirect('/index/index');

            // Check if the User is in our dB
            //$users = new My_Model_Users();
            //$userTrue = $users->checkUserExists($userId,$providerName);
            Zend_Debug::dump($toStore);
            Zend_Debug::dump($this->_helper->user());

        } else {                                                

            $this->_helper->FlashMessenger('Failed authentication');
            $this->_helper->FlashMessenger($result->getMessages());
            //return $this->_redirect('/index/index');
        }

J

John Jones
  • 2,175
  • 2
  • 20
  • 29

1 Answers1

0

After more trawling stackoverflow I found a solution.

Multiple Instances (2) of Zend_Auth

Basically created my own Auth class and removed the singleton pattern in Zend_Auth, this allowed me to create another instance.

J

Community
  • 1
  • 1
John Jones
  • 2,175
  • 2
  • 20
  • 29