我有一个带有本地登录系统的应用程序。我想做的是允许用户将他们的 facebook 帐户连接到他们的帐户。我将 Zend Auth 用于我的主要本地登录和 Michael Krotscheck 的 facebook auth。
我可以很好地与 facebook 连接,但是因为我使用的是 Zend_Auth,所以 facebook 数据覆盖了主要的本地登录存储。我所需要的只是用户电子邮件和 facebook id 并将它们插入到我的用户表中。
下面的代码显示了它是如何工作的,我不知道除了使用 Zend Auth 进行 facebook 登录之外的另一种选择。有人有同样的问题吗?建议会很有帮助。
$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');
}
Ĵ