跨子域身份驗證和身份 Cookie

如果是自動登入或記住我cookie,則應用與子域 cookie 相同的怪癖。但是這次你需要配置使用者元件,將 identityCookie 陣列設定為所需的 cookie 配置。

開啟應用程式配置檔案並將 identityCookie 引數新增到使用者元件配置:

$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,
            ],
        ],

    ],
];

請注意,cookieValidationKey 對於所有子域應該相同。

請注意,你必須將 session::cookieParams 屬性配置為與 user::identityCookie 具有相同的域,以確保 loginlogout 適用於所有子域。在下一節中將更好地解釋此行為。