[英]Silex FormServiceProvider and form.secret parameter
我正在使用Silex的FormServiceProvider
並閱讀文檔,它解釋了它有一個名為form.secret
參數,我認為這意味着構造提供程序:
$app->register(new Silex\Provider\FormServiceProvider(), [
'form.secret' => 'SECRET HERE'
]);
但問題是,當我查看此文件的源代碼時,我看不到使用此參數的構造函數。 只看到它在容器內部設置為md5(__DIR__)
。
https://github.com/silexphp/Silex/blob/master/src/Silex/Provider/FormServiceProvider.php#L48
或者它只是一個在構建時不提供form.secret
的情況,只是在提供者注冊后設置$app['form.secret'] = 'SECRET HERE'
?
在這個假設中我是對的還是我錯過了什么?
當第一次訪問$app["form.csrf_provider"]
時,您可以看到它在第100行中使用:
$app['form.csrf_provider'] = function ($app) {
if (isset($app['session'])) {
return new SessionCsrfProvider($app['session'], $app['form.secret']);
}
return new DefaultCsrfProvider($app['form.secret']);
};
因為您提到的md5調用會忽略和覆蓋您傳遞的任何內容,正確的用法將是:
$app->register(new FormServiceProvider());
$app["form.secret"] = "foo";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.