Php 如何在多个Symfony应用程序(相同的数据库,多个内核)之间共享身份验证?

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 | |

我有一个Symfony 3项目,分为3个应用程序(多个内核,相同的数据库,不同的子域):Front/Admin/Partner。 (主要是为了能够使用几个Sonata管理配置。)

当用户在前台应用程序中填写登录表单时,他将根据其角色被重定向到相应的应用程序(子域)


我的问题是:如何在重定向后对他进行身份验证?

我找到了它不起作用的原因:我的
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