9

我正在实现一个 Web 服务作为 Symfony2 站点的一部分,该站点将使用来自另一个(静态)站点的 JSONp 和 iframe 进行访问。当用户使用 iFrame 登录时,Safari 不会保留会话,因此我使用 javascript 将会话 ID 存储在静态站点的 cookie 中,并将其传递回请求的 GET 或 POST 参数中,这工作正常.

问题是在其他浏览器上,Web 服务的会话 cookie 被保留,这意味着当用户注销时,他们实际上仍然登录到 Symfony 站点。

有没有办法,仅对于 symfony 站点的 web 服务部分,禁用 PHP 会话 cookie,最好以 Symfony2 友好的方式(而不是,例如,弄乱 .htaccess)?

我仍然想要一个会话,但会通过在我发出的所有请求中自己传递一个 PHPSESSID 变量来维护它。

4

1 回答 1

12

可能正是您正在寻找的东西。拥有无状态防火墙:

在你的 security.yml

# app/config/security.yml
security:
    firewalls:
        main:
            stateless:  true
于 2012-09-17T11:46:12.007 回答