/**
* TODO: допилить, разделить
* @param \yii\authclient\BaseClient $client
* @return bool
*/
public function successAuthclientCallback($client)
{
$attributes = $client->getUserAttributes();
//TODO: добавить обновление данных
if (!Yii::$app->getUser()->isGuest) {
$userAuthClient = \common\models\UserAuthclient::findOne(["user_id" => Yii::$app->user->getId(), "provider" => $client->getId(), "provider_identifier" => $attributes["id"]]);
if (!$userAuthClient) {
$userAuthClient = new \common\models\UserAuthclient(["user_id" => Yii::$app->user->getId(), "provider" => $client->getId(), "provider_identifier" => $attributes["id"], "provider_data" => serialize($attributes)]);
$userAuthClient->save();
}
} else {
$userAuthClient = \common\models\UserAuthclient::findOne(["provider" => $client->getId(), "provider_identifier" => $attributes["id"]]);
if ($userAuthClient) {
$user = \common\models\User::findIdentity($userAuthClient->getUserId());
if ($user) {
return Yii::$app->user->login($user, 0);
}
}
}
}