跨子域身份验证和身份 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
适用于所有子域。在下一节中将更好地解释此行为。