AuthClient谷歌中的Yii2获取用户属性。 "未定义索引:电子邮件"

时间:2016-12-14 00:29:55

标签: php yii2 google-login

我在Yii2 Framework中使用Google进行身份验证,我需要帮助才能获取属性,因为我无法获取用户属性。

我的web.php:

'google' => [
  'class' => 'yii\authclient\clients\Google',
             'authUrl' => 'https://accounts.google.com/o/oauth2/auth?display=popup',
             'clientId' => 'xxxxx',
             'clientSecret' => 'xxxxx',
],

我在Controller中的行为:

'auth' => [
   'class' => 'yii\authclient\AuthAction',
   'successCallback' => [$this, 'successCallback'],
   'successUrl' => \yii\helpers\Url::to(['selecionar-empresa']),
],

我的成功回调:

$attributes = $client->getUserAttributes();
$user = User::find()->where(['email'=>$attributes['email']])->one();

但是在successCallback中返回此错误:

Undefined index: email

任何人都可以帮我实现这个目标,plis。 tyyyy。

1 个答案:

答案 0 :(得分:0)

替换

$attributes = $client->getUserAttributes();
$user = User::find()->where(['email'=>$attributes['email']])->one();

有了这个并尝试。

$attributes = $client->getUserAttributes();
$user_email = $attributes['emails'][0]['value'];
$user = User::find()->where(['email'=>user_email])->one();

我希望它对你有用......