有没有办法阻止 Symfony2 为某些路径发送会话 cookie?
Posted
技术标签:
【中文标题】有没有办法阻止 Symfony2 为某些路径发送会话 cookie?【英文标题】:Is there a way to stop Symfony2 sending session cookies for certain paths? 【发布时间】:2012-05-08 08:45:12 【问题描述】:我正在实现一个 Web 服务作为 Symfony2 站点的一部分,该站点将使用来自另一个(静态)站点的 JSONp 和 iframe 进行访问。当用户使用 iFrame 登录时,Safari 不会保留会话,因此我使用 javascript 将会话 ID 存储在静态站点的 cookie 中,并将其传递回请求的 GET 或 POST 参数,这工作正常.
问题是在其他浏览器上,Web 服务的会话 cookie 被保留,这意味着当用户退出时,他们实际上仍然登录到 Symfony 站点。
有没有办法仅对 symfony 站点的 web 服务部分禁用 php 会话 cookie,最好以 Symfony2 友好的方式(而不是,例如,弄乱 .htaccess)?
我仍然想要一个会话,但会通过在我发出的所有请求中自己传递一个 PHPSESSID 变量来维护它。
【问题讨论】:
【参考方案1】:This 可能正是您正在寻找的东西。拥有无状态防火墙:
在你的 security.yml 中
# app/config/security.yml
security:
firewalls:
main:
stateless: true
【讨论】:
我想我试过了,但它不适用于基于表单的登录或其他东西。 基于表单的啊。是的,即使在文档中它说基于表单的登录将使用会话和 cookie。我正在做一个无状态的 Web 服务,所以成功了 见:Symfony Book - Security - Stateless Authentication 哦,请确保您的 Symfony 站点不会尝试从会话中读取数据,因为这会创建会话。这被一些用户(包括我)视为一个问题,因此请在此处进行讨论:github.com/symfony/symfony/issues/6036以上是关于有没有办法阻止 Symfony2 为某些路径发送会话 cookie?的主要内容,如果未能解决你的问题,请参考以下文章
如何配置 AWS ELB 以阻止某些 IP 地址? (已知的垃圾邮件发送者)[关闭]
window.open() 某些情况会被浏览器阻止弹出窗口及解决办法