/** * 绑定第三方账号 * @param ClientInterface $client * @return \yii\web\Response */ public function connect(ClientInterface $client) { $attributes = $client->getUserAttributes(); $provider = $client->getId(); $clientId = $attributes['id']; $account = $this->finder->findAccountByProviderAndClientId($provider, $clientId); if ($account === null) { $account = Yii::createObject(['class' => UserAccount::className(), 'provider' => $provider, 'client_id' => $clientId, 'data' => json_encode($attributes), 'user_id' => Yii::$app->user->id, 'created_at' => time()]); $account->save(false); Yii::$app->session->setFlash('success', '账号绑定成功'); } else { Yii::$app->session->setFlash('error', '绑定失败,此账号已经绑定过了'); } $this->action->successUrl = Url::to(['/user/setting/networks']); }