These are chat archives for dektrium/yii2-user

6th
Jul 2015
cosmos-rusnire
@cosmos-rusnire
Jul 06 2015 05:47
@hellvesper при регистрации через ВК получал токен и сохранял в таблицу social_account (создал там колонку для токена). + если прикручиваешь соц. аккаунт через профиль, то также заносил токен в таблицу.
Vitaly
@hellvesper
Jul 06 2015 06:11
@cosmos-rusnire у меня похожая проблема по фейсбуку возникла, нужно было токен получить и сохранить, но уже победил эту проблему
Dmytro Khalin
@dr1v3
Jul 06 2015 06:59
А кстати, как правильно класс Finder отнаследовать? Я пробовал, что-то запутался в селфах и прочих ссылках
cosmos-rusnire
@cosmos-rusnire
Jul 06 2015 12:50
@hellvesper каким образом боролся?
Vitaly
@hellvesper
Jul 06 2015 12:53
@cosmos-rusnire модель Accounts подредактировал, собственно это все что оказываеться пришлось изменить. Надо будет по правилам переопределить ее потом.
protected static function fetchAccount(BaseClientInterface $client)
    {
        $account = static::getFinder()->findAccountByClient($client);

        if (null === $account) {
            // dirty hack: adding token to data
            $_u_attributes = json_decode(json_encode($client->getUserAttributes()), true);
            $_u_token = ['token' => ($client->accessToken->token) ? $client->accessToken->token : null];
            $_json_data = json_encode(array_merge($_u_attributes, $_u_token));
            // ---
            $account = \Yii::createObject([
                'class'      => static::className(),
                'provider'   => $client->getId(),
                'client_id'  => $client->getUserAttributes()['id'],
                'data'       => $_json_data/*json_encode($client->getUserAttributes())*/,
                'token'      => ($client->accessToken->token) ? $client->accessToken->token : null ,
            ]);
            $account->save(false);
        }
тут в двух местах получается сохраняется =) я вначале добавил поле token и запихнул туда токен, но потом выяснилось что удобнее хранить в data и я сделал те dirty hack =)