1

是否可以爲Zend 2中的CSRF表單元素指定全局默認超時值? 否則,我必須爲每個CSRF元素指定一個超時選項。ZF2中CSRF的默認超時

P.S .:當前默認超時的值是多少?

回答

2

Zend\Validator\Csrf的源代碼,Csrf元素在Zend框架2默認的超時時間設置爲300

protected $timeout = 300; //line 70 

如果你想設置的同時,請在您的形式全部CSRF元素,您可以使用您想要的超時值創建自定義csrfValidator,並使用setCsrfValidator方法覆蓋元素的默認CSRF驗證程序。

否則只是更改默認選項,當您添加CSRF元素的形式:

可以,或者通過使用csrf_options鍵更改使用setCsrfValidatorOptions功能的CSRF驗證的選項。

Csrf documentation

1

我有我自己的表單基類派生關閉Zend\Form\From,我的所有形式的繼承。這樣我可以對所有窗體都有一些默認行爲。具體來說,我現在在這個基類中的一件事是,默認情況下,所有表單都會被賦予一個CSRF元素。這樣我永遠不會忘記添加一個。而且,如果你正在這樣做,那麼你可以很容易地配置任何你想要的時間在這個地方,它會適用於你的所有表單。