我在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。
答案 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();
我希望它对你有用......