簡體   English   中英

Silex FormServiceProvider和form.secret參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM