我的网站中有两个以上的子域名。 例如:www.example.com,login.example.com,user.example.com,cart.example.com ...... 我在config.yml和php.ini中设置了cookie_domain是.example.com 当我setCookies('test','value','。example.com'),但cookie总是不在子域中共享。 那么,现在该怎么办?
有我的config.yml
session:
handler_id: session.handler.native_file
save_path: "%kernel.root_dir%/../var/sessions/"
cookie_domain: .example.com
cookie_lifetime: 0
name: TESTSESSIONID
在我的安全中:
security:
session_fixation_strategy: none
答案 0 :(得分:1)
您可以在定义cookie_domain的config.yml
中配置会话密钥。例如:
config.yml
session:
cookie_lifetime: 0
save_path: %kernel.root_dir%/var/sessions
cookie_domain: .my-domain.com
name: SFSESSID
希望这个帮助
答案 1 :(得分:1)
我需要这个适用于所有子域名,但域名本身会根据我是在开发还是在生产中而改变。
我使用parameters_dev.yml和parameters.yml来定义'域',然后在config.yml中添加它以允许所有子域中的cookie。
framework:
session:
cookie_domain: '.%domain%'
答案 2 :(得分:0)
您需要在应用程序中设置可信主机,因为出于安全原因,symfony应用程序将响应列入白名单的主机和子主机。要做到这一点,你有几种方法来解决它
#app/config/config.yml framework: trusted_hosts: ['example.com', 'login.example.com', 'user.example.com', 'cart.example.com']
//web/app.php Request::setTrustedHosts(array('.*\.?example.com$'));
请参阅以下文档链接以供参考