我有一个Symfony 3项目,它被分成3应用程序(多个内核,相同的数据库,不同的子域):Front / Admin / Partner。(主要是为了能够使用几个Sonata Admin配置。)
当用户在前端应用程序中填写登录表单时,根据他的角色,他会被重定向到相应的应用程序(子域)。
我的问题是:在重定向后如何让他进行身份验证?
发布于 2017-08-05 18:42:38
我找到了它不能工作的原因:我的var
文件夹被应用程序拆分了,因此我的sessions
文件夹没有在应用程序之间共享。
var
|-- admin
| |-- cache
| |-- logs
| |-- sessions
|-- front
| ...
解决方案是在我的应用程序会话配置中定义相同的save_path
。
我还必须定义主机名(没有子域)的cookie_domain
,以便获得一个由所有子域共享的PHPSESSID cookie:
framework:
session:
save_path: '%kernel.project_dir%/var/sessions/'
cookie_domain: 'mywebsite.com'
发布于 2018-08-04 04:35:07
为了让它工作,我需要在会话部分添加handler_id: session.handler.native_file
,并在子域之间共享会话,我需要在cookie_domain部分的域前加上一个点作为前缀:
framework:
session:
handler_id: session.handler.native_file
save_path: '%kernel.project_dir%/var/sessions/'
cookie_domain: .mywebsite.com
https://stackoverflow.com/questions/45516416
复制相似问题