跨子域身份驗證和身份 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
具有相同的域,以確保 login
和 logout
適用於所有子域。在下一節中將更好地解釋此行為。