yii2 Authentification par sous-domaines et cookies d'identité


Exemple

En cas de connexion automatique ou de "souvenir de moi", les mêmes quirks que dans le cas des cookies de sous-domaines s'appliquent. Mais cette fois, vous devez configurer le composant utilisateur, en définissant le tableau identityCookie sur la configuration de cookie souhaitée.

Ouvrez votre fichier de configuration d'application et ajoutez identityCookie paramètres identityCookie à la configuration du composant utilisateur:

$config = [
    // ...
    'components' => [
        // ...
        'user' => [
            'class' => 'yii\web\User',
            'identityClass' => 'app\models\User',
            'enableAutoLogin' => true,
            'loginUrl' => '/user/login',
            'identityCookie' => [ // <---- here!
                'name' => '_identity',
                'httpOnly' => true,
                'domain' => '.example.com',
            ],
        ],
        'request' => [
            'cookieValidationKey' => 'your_validation_key'
        ],
        'session' => [
            'cookieParams' => [
                'domain' => '.example.com',
                'httpOnly' => true,
            ],
        ],

    ],
];

Notez que cookieValidationKey doit être identique pour tous les sous-domaines.

Notez que vous devez configurer la propriété session::cookieParams pour que le samedomain devienne votre user::identityCookie afin de garantir la login et la logout pour tous les sous-domaines. Ce comportement est mieux expliqué dans la section suivante.