Suche…


Erstellen Sie eine App für Facebook-Entwickler

Gehen Sie zu [ https://developers.facebook.com/(((ttps://developers.facebook.com/) und erstellen Sie Ihre App. Schnittstelle nach dem Erstellen einer neuen App

Klicken Add product und wählen Sie Facebook Login

Einstellung für App-Facebook-Login

Installieren Sie den yii2-authclient

Bevor Sie diese Erweiterung installieren, müssen Sie yii2-app installieren. In diesem Beispiel verwende ich die Vorlage yii2-basic. Anleitung zur Installation hier .

Lauf

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

oder hinzufügen

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

zum require Abschnitt Ihres composer.json .

In Config authClientCollection zu Ihren Konfigurations 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 ist Anwendungs - ID und facebook_client_secret ist app Geheimnis. Info Facebook-Kundennummer und -geheimnis

Fügen Sie eine Auth-Aktion hinzu und richten Sie einen Rückruf ein

  1. Schaltfläche Login as facebook account für Ihre Login-Ansicht an:

Bearbeiten Sie site/login.php im Ordner "views" und fügen Sie diese Zeile zum Inhalt der Seitenanmeldung hinzu:

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

Oben setzen wir, dass die auth Aktion in SiteController den OAuth2-Fluss behandelt.

Jetzt schaffen wir es.

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

Wir verwenden yii\authclient\AuthAction um eine URL zu erstellen und zur Facebook-Login-Seite umzuleiten.

Funktion onAuthSuccess die zum onAuthSuccess von Benutzerinformationen verwendet wird, onAuthSuccess bei Ihrer App an.

Füge redirect_url zur Facebook-App-Einstellung hinzu

Wenn Sie prettyUrl in Ihrer yii2-App aktivieren, lautet Ihre Weiterleitung:

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

Und deaktiviere die hübsche URL:

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

Beispiel:

Setup redirect_uri

Beispiel für die Funktion 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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow