Ricerca…


Crea un'app sullo sviluppatore di Facebook

Vai a [ https://developers.facebook.com/](https://developers.facebook.com/) e crea la tua app. Interfaccia dopo aver creato una nuova app

Fai clic su Add product e seleziona Facebook Login

Impostazione per l'accesso a Facebook app

Installa yii2-authclient

Prima di installare questa estensione, è necessario installare yii2-app. In questo esempio, utilizzo il modello yii2-basic. Guida per l'installazione qui .

Correre

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

o aggiungi

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

alla sezione require del tuo composer.json .

Aggiungi config authClientCollection ai tuoi components configurazione:

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 è application id e facebook_client_secret è app secret. Info ID cliente facebook e segreto client

Aggiungi azione auth e imposta callback

  1. Aggiungi pulsante Login as facebook account alla tua vista di accesso:

Modifica site/login.php nella cartella delle visualizzazioni, aggiungi la linea di tesi al contenuto dell'accesso alla pagina:

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

Sopra, impostiamo che l'azione di auth in SiteController gestirà il flusso di OAuth2.

Ora lo creiamo.

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

Utilizziamo yii\authclient\AuthAction per creare URL e reindirizzare alla pagina di accesso di Facebook.

Funzione onAuthSuccess utilizzata per ottenere informazioni utente, accedere alla tua app.

Aggiungi redirect_url alle impostazioni dell'app Facebook

Se abiliti prettyUrl nella tua app yii2, il tuo redirect_uri sarà:

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

E disabilita l'URL carino:

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

Esempio:

Imposta redirect_uri

Esempio per la funzione 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow