是否可以在Zend 2中为CSRF表单元素指定全局默认超时? 否则,我必须为每个CSRF元素指定一个超时选项。
P.S。:当前默认超时的值是什么?
答案 0 :(得分:3)
从Zend\Validator\Csrf的源代码中,Zend Framework 2中Csrf
元素的默认超时设置为300
:
protected $timeout = 300; //line 70
如果要为表单中的所有Csrf元素设置相同的超时时间,可以使用所需的超时值创建自定义csrfValidator
,并使用{{1}覆盖元素的默认CSRF验证程序方法。
否则,只需在向表单添加Csrf元素时更改默认选项:
您可以使用
setCsrfValidator
功能或使用setCsrfValidatorOptions
键更改CSRF验证器的选项。
答案 1 :(得分:1)
我有自己的Form基类,派生自Zend\Form\From
,我的所有表单都继承自。这样我可以为所有表单设置一些默认行为。具体来说,我现在在这个基类中的一件事是默认情况下所有表单都被赋予CSRF元素。这样我就永远不会忘记添加一个。而且,如果你这样做,那么你可以很容易地在那个地方配置你想要的任何超时,它将适用于你的所有表格。