Sök…


Skapa en app på facebookutvecklare

Gå till [ https://developers.facebook.com/achte(https://developers.facebook.com/) och skapa din app. Gränssnitt efter att skapa en ny app

Klicka på Add product och välj Facebook Login

Inställning för inloggning för app facebook

Installera yii2-authentclient

Innan du installerar tillägget måste du installera yii2-app. I det här exemplet använder jag yii2-basic mall. Guide för installation här .

Springa

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

eller lägg till

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

till det require avsnittet i din composer.json .

Lägg config authClientCollection dina config components :

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 är applikations-id och facebook_client_secret är apphemligt. Info facebook klient-id och klienthemlighet

Lägg till autorisation och konfigurera återuppringning

  1. Lägg till knapp Login as facebook account i din inloggningsvy:

Redigera site/login.php i visningsmappen, lägg till avhandlingens rad i innehållet i sidanloggningen:

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

Ovanstående sätter vi att auth åtgärd i SiteController kommer att hantera OAuth2-flöde.

Nu skapar vi det.

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
    }
}

Vi använder yii\authclient\AuthAction för att skapa url och omdirigera till facebook inloggningssida.

Funktion onAuthSuccess används för att få användarinformation, logga in på din app.

Lägg till omdirigering_url till inställningen för Facebook-appen

Om du aktiverar prettyUrl i din yii2-app kommer din omdirigering_uri att vara:

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

Och inaktivera ganska url:

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

Exempel:

Konfigurera omdirigering_uri

Exempel för onAuthSuccess-funktion

/**
 * @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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow