ローカル ログイン システムを備えたアプリがあります。私がやろうとしているのは、ユーザーが Facebook アカウントを自分のアカウントに接続できるようにすることです。メインのローカル ログインには Zend Auth を使用し、Michael Krotscheck による Facebook 認証を使用しています。
Facebook には問題なく接続できますが、Zend_Auth を使用しているため、Facebook データがメインのローカル ログイン ストレージに上書きされます。必要なのは、ユーザーの電子メールと Facebook ID だけで、それらをユーザー テーブルに挿入します。
以下のコードは、すべてがどのように機能するかを示しています。Facebook ログインに Zend Auth を使用する以外の方法はわかりません。誰かが同じ問題を抱えていましたか?アドバイスはとても役に立ちます。
$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