Решил данную проблему. Может кому пригодится. Само собой, используя функционал Yii2, но общий принцип, думаю, везде один и тот же.
Создаём дополнительное поле в таблице юзеров для хранения токена. При авторизации юзера посредством ВК записываем туда объект OAuthToken (соответственно обаработанный функцией serialize).
serialize($client->getAccessToken())
В экшне actionGetAllMembers дописывем след. код:
$user_id = Yii::$app->request->get('user_id');
$model->refreshSocialToken($user_id);
где
user_id - id текущего юзера, который мы передаем данному экшну.
refreshSocialToken - метод модели
SearchForm:
public function refreshSocialToken($user_id) {
$vk = \Yii::$app->authClientCollection->getClient('vkontakte');
$user = Auth::findOne(['user_id' => $user_id]);
$vk->setAccessToken(unserialize($user->token));
return true;
}
в котором мы извлекаем значения поля
token для текущего юзера, куда перед этим был записан сериализованный объект, проводим обратную процедуру unserialize и вызываем метод
setAccessToken, чтобы по сути установить еще раз то же самое значения токена.
Делается это всё потому, что при асинхронном запросе сессия, основанная на файлах, блокируется. И значения необходимо установить по новой в текущем экшне (
actionGetAllMembers). Что и достигается с помощью метода
setAccessToken.