Recherche…


Créer une application sur un développeur facebook

Allez dans le [ https://developers.facebook.com/](https://developers.facebook.com/) et créez votre application. Interface après créer une nouvelle application

Cliquez sur Add product et choisissez Facebook Login

Réglage pour l'application facebook login

Installez yii2-authclient

Avant d'installer cette extension, vous devez installer yii2-app. Dans cet exemple, j'utilise le modèle yii2-basic. Guide pour l'installation ici .

Courir

composer require --prefer-dist yiisoft/yii2-authclient

ou ajouter

"yiisoft/yii2-authclient": "~2.1.0"

à la section require de votre composer.json .

Ajoutez config authClientCollection à vos components configuration:

return [
    'components' => [
        'authClientCollection' => [
            'class' => 'yii\authclient\Collection',
            'clients' => [
                'facebook' => [
                    'class' => 'yii\authclient\clients\Facebook',
                    'clientId' => 'facebook_client_id',
                    'clientSecret' => 'facebook_client_secret',
                ],
            ],
        ]
    ],
    // ...
];

facebook_client_id est l'identifiant de l'application et facebook_client_secret est le secret de l'application. Info identifiant client et secret client

Ajouter une action d'authentification et configurer le rappel

  1. Ajouter un bouton Login as facebook account à votre vue de connexion:

Modifier le site/login.php dans le dossier des vues, ajouter cette ligne au contenu de la page de connexion:

<?= yii\authclient\widgets\AuthChoice::widget([
     'baseAuthUrl' => ['site/auth'],
     'popupMode' => false,
]) ?>

Au- dessus, nous avons mis que auth action SiteController sera handler flux OAuth2.

Maintenant, nous le créons.

class SiteController extends Controller
{
    public function actions()
    {
        return [
            'auth' => [
                'class' => 'yii\authclient\AuthAction',
                'successCallback' => [$this, 'onAuthSuccess'],
            ],
        ];
    }

    public function onAuthSuccess($client)
    {
        // do many stuff here, save user info to your app database
    }
}

Nous utilisons yii\authclient\AuthAction pour créer une URL et rediriger vers la page de connexion facebook.

Fonction onAuthSuccess utilisée pour obtenir des informations sur l'utilisateur, connectez-vous à votre application.

Ajouter redirect_url à la configuration de l'application facebook

Si vous activez prettyUrl dans votre application yii2, votre redirect_uri sera:

http://<base_url>/web/site/auth

Et désactivez la jolie URL:

http://<base_url>/web/index.php?r=site%2Fauth

Exemple:

Configurer redirect_uri

Exemple pour la fonction onAuthSuccess

/**
 * @param $client ClientInterface
 */
public function onAuthSuccess($client)
{
    //Get user info
    /** @var array $attributes */
    $attributes = $client->getUserAttributes();
    $email = ArrayHelper::getValue($attributes, 'email'); //email info
    $id = ArrayHelper::getValue($attributes, 'id'); // id facebook user
    $name = ArrayHelper::getValue($attributes, 'name'); // name facebook account

    //Login user
    //For demo, I will login with admin/admin default account
    $admin = User::findByUsername('admin');
    Yii::$app->user->login($admin);
}


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow