假设我有一个共享两个主要包的 Symfony2 应用程序:OneBundle
和 TwoBundle
。 OneBundle
充当用于管理目的的后端,TwoBundle
是用于外部的 RESTful API。
OneBundle
的流程是每个人都知道的:管理员登录、执行操作和注销或让应用程序保持打开状态或直接关闭浏览器或以任何其他方式关闭应用程序,在这种情况下 session 应该是按照 config.yml
中的定义销毁或丢弃( session 的 24 小时过期日期)。
现在 TwoBundle
有一个不同的流程:用户登录 Salesforce 并获得一个 token ,该 token 被传回 API 端点,我创建一个新 session 来存储 token 和一些其他信息,用户注销或关闭客户端应用程序或其他东西,该 session 应该持续一周而不是像第一个那样持续 24 小时。
同一个 Symfony2 应用程序是否可以共享两个不同的 session ,即一个 session 用于 OneBundle
而第二个 session 用于 TwoBundle
? PHP 允许吗?你如何处理这个业务规则?我可以将一个 session 存储为默认保存处理程序,将另一个 session 存储为 PdoSessionHandler
吗?
最佳答案
可以通过在security.yml文件中设置两个防火墙来实现。一个用于“OneBundle”,另一个用于“TwoBundle”,如果需要,您可以使用不同的安全处理程序(第一个是 FOSUser,第二个是 Native),因此 symfony 安全性非常灵活。
[编辑]
您可以在 symfony 配置中查看这些页面:
关于php - Symfony 应用程序或 PHP 可以同时管理多少个 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30339400/