These are chat archives for dektrium/yii2-user

8th
Jul 2015
vinod27ece
@vinod27ece
Jul 08 2015 05:01
I want to implement some functionality in user beforLogin() and afterLogin() functionality. Since there are many ways for a use to get logged in into system , So How could I override this default functionalities.
Blocked user can access account using social login. #434
Hi,
I am using this extension in my project and I am stuck with one case, like A user has registered using facebook, Then I blocked user using Admin-Panel. But still user is able to log-in into system using facebook.
cosmos-rusnire
@cosmos-rusnire
Jul 08 2015 07:58

@hellvesper а я в клиенте ВК прописал public function getAccToken()
{
return $this->getAccessToken()->getParam('access_token');
}

Потом в клиентинтерфейсе public function getAccToken();

И в модели Аккаунт

protected static function getUserToken(ClientInterface $client)
{
    $getToken = $client->getAccToken();
    return $getToken;
}
protected static function fetchAccount(BaseClientInterface $client)
{
    $account = static::getFinder()->findAccountByClient($client);

    if (null === $account) {
        $userToken = static::getUserToken($client); /*Получаем токен*/
        $account = \Yii::createObject([
            'class'      => static::className(),
            'provider'   => $client->getId(),
            'client_id'  => $client->getUserAttributes()['id'],
            'data'       => json_encode($client->getUserAttributes()),
            'access_token' => $userToken,
        ]);
        $account->save(false);

    }


    return $account;
}
Может кто подскажет, почему не работает execute метод? Обычные запросы могу выполнить, а через execute не могу. Выдает User authorization failed: no access_token passed. [request_params]. Хотя токен вроде передаю
cosmos-rusnire
@cosmos-rusnire
Jul 08 2015 12:04
Кто-нибудь делал api запросы с токеном?
Vitaly
@hellvesper
Jul 08 2015 12:05
куда?
cosmos-rusnire
@cosmos-rusnire
Jul 08 2015 12:07

@hellvesper да хоть куда, в вк например. Есть обертка для запросов:
<?php
/**

  • Created by PhpStorm.
  • User: CosmosR
  • Date: 28.05.2015
  • Time: 23:54
    */

namespace app\components;

use Yii;
use yii\base\Component;

class VKApi extends Component
{
public $appId;
public $apiSecret;
public $accessToken;

public $_vk;

public function init() {
    $this->_vk = new \VK\VK($this->appId, $this->apiSecret, Yii::$app->user->identity->getAccounts()['vkontakte']['access_token']);
    parent::init();
}



public  function getTok(){
    return $accessToken = $getUserSocialAccess2 = Yii::$app->user->identity->getAccounts()['vkontakte']['access_token'];
}

public function getAccessToken($code) {

    return $accessToken = $getUserSocialAccess2 = Yii::$app->user->identity->getAccounts()['vkontakte']['access_token'];
   // return $accessToken = $this->_vk->getAccessToken($code);
}

public function isAuth() {
    return $this->_vk->isAuth();
}

public function api($method, $params = []) {
    return $this->_vk->api($method, $params);
}

}

Но пишет что токен не рабочий. Пытался даже получать из ссылки в ручную и вставлять - все также. В правах offline указал

Vitaly
@hellvesper
Jul 08 2015 12:08
возможно у твоего токена не хватает прав для того что ты хочешь
cosmos-rusnire
@cosmos-rusnire
Jul 08 2015 12:09

@hellvesper даже пустой запрос не принимает:

$piecesPosts = Yii::$app->vk->api('execute', array('code' => '

   '));
Vitaly
@hellvesper
Jul 08 2015 12:10
@cosmos-rusnire ну хз, наверно это какие-то нюансы vk