因此,我们正在沿着SOA的方向在Symfony2中开发一个Web应用程序(简短的社论:Symfony2非常棒)。所有数据都在我们的jQuery驱动的前端和Symfony2后端之间来回放置,格式化了一个j JSON,其中存在很大的问题。
Symfony2提供了一个强大的安全系统,但它似乎依赖于“安全层”拦截表单提交并使用表单编码的POST数据来处理身份验证尝试。这对我们的应用程序来说是有问题的,因为我们只使用JSON。我站在那里,使用JSON为每一个请求和响应除了身份验证是...... bool的表,坦率地说。难闻的气味,糟糕的juju,无论你怎么称呼它。
现在,Symfony2允许创建事件侦听器,这些事件侦听器挂钩到与请求的生命周期和消费者响应相关的一系列事件中。我们使用其中一个钩子来解码每个POST请求中的JSON,以便相关控制器只需要担心直接使用php数组而不进行任何解码或反序列化等等。
因此,我们的问题的关键在于“安全层”期望从表单提交中获取表单编码的POST数据(通常在后端服务的页面上)。我们将其设置为从JSONified数据创建的PHP数组。那又怎么样?我们应该: