Как сохранить данные пользователей, хотя с помощью CakePHP v2.0 и плагин webtechnich facebook? - PullRequest
0 голосов
/ 13 марта 2012

Я очень новичок в торте и плагине (плагин facebook от webtechnick).

Каков наилучший (простой, эффективный) способ сохранения пользовательских данных (facebook_id, токен и т. Д.), Когда (или после?) Пользователи вошли в систему?

Я пытался использовать afterFacebookLogin с переменной массива, "$ facebook_user", в качестве параметра, но я понятия не имею, почему метод обратного вызова вообще не работает.

Так какие-нибудь добрые пекари могут сказать мне путь?

ура!

1 Ответ

2 голосов
/ 15 марта 2012

В вашем AppController добавьте или измените beforeFilter ():

function beforeFilter(){
        $fbUser = $this->Connect->user();
        $Facebook = new FB();
        if($fbUser){
            $this->set('facebook_user', $fbUser);
            $user = $this->Auth->user();
            $this->set('user', $user);
            if($this->Auth->user('id') && !$user['User']['has_details'] && !$user['User']['email']){
                $this->loadModel('User');
                $user['User']['username'] = $fbUser['username'];
                $user['User']['first_name'] = $fbUser['first_name'];
                $user['User']['last_name'] = $fbUser['last_name'];
                $user['User']['link'] = $fbUser['link'];
                $user['User']['gender'] = $fbUser['gender'];
                $user['User']['email'] = $fbUser['email'];
                $user['User']['has_details'] = true;
                if($this->User->save($user, array('validate' => false))){
                    $this->Session->write('Auth.User.has_details', true);
                }
            }
        }
}
...