Sto provando a implementare yii \ authclient \ AuthAction's successCallback.AuthAction in yii2
Il mio codice è simile al seguente:
public function actions()
{
return [
'auth' => [
'class' => 'yii\authclient\AuthAction',
'successCallback' => [$this, 'successCallback'],
],
];
}
/**
* @param \yii\authclient\ClientInterface $client
*/
public function successCallback($client)
{
$attributes = $client->getUserAttributes();
$externalUser = new AuthForm();
$externalUser->authProvider = $client->getName();
$externalUser->externalUserId = array_key_exists('id', $attributes) ? $attributes['id'] : null;
if ($externalUser->validate())
{
if ($externalUser->isRegistered())
{
$externalUser->login();
return $this->redirect(['private/index']);
}
else
{
Yii::$app->session->set('signup/authProvider', $externalUser->authProvider);
Yii::$app->session->set('signup/attributes' , $attributes);
return $this->redirect(['site/signup']);
}
}
}
Come posso chiamare successCallback? Voglio chiamare il metodo auth. Ma non sono in grado di farlo?
'$ externalUser-> login();' Vuoi chiamare la funzione di login ma l'utente non effettua il login? –