Php 如何在多个Symfony应用程序(相同的数据库,多个内核)之间共享身份验证?
我有一个Symfony 3项目,分为3个应用程序(多个内核,相同的数据库,不同的子域):Front/Admin/Partner。 (主要是为了能够使用几个Sonata管理配置。) 当用户在前台应用程序中填写登录表单时,他将根据其角色被重定向到相应的应用程序(子域)Php 如何在多个Symfony应用程序(相同的数据库,多个内核)之间共享身份验证?,php,symfony,authentication,token,session-cookies,Php,Symfony,Authentication,Token,Session Cookies,我有一个Symfony 3项目,分为3个应用程序(多个内核,相同的数据库,不同的子域):Front/Admin/Partner。 (主要是为了能够使用几个Sonata管理配置。) 当用户在前台应用程序中填写登录表单时,他将根据其角色被重定向到相应的应用程序(子域) 我的问题是:如何在重定向后对他进行身份验证?我找到了它不起作用的原因:我的var文件夹被应用程序分割,因此我的会话文件夹没有在应用程序之间共享 var |-- admin | |-- cache | |
我的问题是:如何在重定向后对他进行身份验证?我找到了它不起作用的原因:我的
var
文件夹被应用程序分割,因此我的会话
文件夹没有在应用程序之间共享
var
|-- admin
| |-- cache
| |-- logs
| |-- sessions
|-- front
| ...
解决方案是在我的应用程序会话配置中定义相同的保存路径。
我还必须将cookie\u域
定义为主机名(无子域),以便获得一个由所有子域共享的PHPSESSID cookie:
framework:
session:
save_path: '%kernel.project_dir%/var/sessions/'
cookie_domain: 'mywebsite.com'
要使其正常工作,我需要在会话部分添加handler\u id:session.handler.native\u文件
,并在子域之间共享会话,我需要在cookie\u域部分的域前面加一个点:
framework:
session:
handler_id: session.handler.native_file
save_path: '%kernel.project_dir%/var/sessions/'
cookie_domain: .mywebsite.com