在symfony2中禁用对路由的直接访问

时间:2012-09-05 12:19:37

标签: symfony

我创建了一个symfony2网页,其中包含一个“/ new”路径中的表单。用户将输入发布到控制器,控制器呈现“/ create”,如果成功,则调用最终路径“/ thankyou”并显示感谢页面。

我想禁用对只有成功/创建POST才能访问的/ thankyou路由的直接访问。这适用于/ create(为什么?)但不适用于/ thankyou。

2 个答案:

答案 0 :(得分:0)

在路由中添加requirements: _method: POST至少会限制对POST操作的访问。

但我不确定如何才能实现只接受来自特定网站的POST。也许使用一个特殊的令牌作为参数传递给你在控制器中检查可以做到这一点。

答案 1 :(得分:0)

您可以根据引用者信息在“/ Thankyou”操作中添加一些条件:

$request->headers->get('referer');

或者你可以在url中使用一些额外的参数,如@Florian所说。