Erlang Chicago Boss CSRF和传递到模板文件的变量

Erlang Chicago Boss CSRF和传递到模板文件的变量,erlang,session-variables,csrf-protection,chicagoboss,Erlang,Session Variables,Csrf Protection,Chicagoboss,我的简单应用程序有两个问题 我已经阅读了两次文档,但没有幸使用boss\u csrf\u过滤器并将变量传递给模板 首先,我在boss.config文件中完成了使用CSRF过滤器的配置,如下所示: {controller_filter_config, [boss_csrf_filter]}, {session_adapter, mock}, {session_key, "_myapp_session"}, {session_exp_time, 525600}, {session_cookie_ht

我的简单应用程序有两个问题

我已经阅读了两次文档,但没有幸使用boss\u csrf\u过滤器并将变量传递给模板

首先,我在boss.config文件中完成了使用CSRF过滤器的配置,如下所示:

{controller_filter_config, [boss_csrf_filter]},
{session_adapter, mock},
{session_key, "_myapp_session"},
{session_exp_time, 525600},
{session_cookie_http_only, false},
{session_cookie_secure, false},
{session_domain, ".myappdomain.com"},
然后,我在模板中添加了变量(位于src/view/world/hello.html下)

代码正在重定向,没有任何值。因此,以下代码不起作用(与我上面提到的模板文件相同):

{%if contactformsend%}
警惕(“你好!”;
{%endif%}

我做错了什么?如何解决这些问题?

我建议将您的问题一分为二,因为我只有第二部分的答案。当您在控制器中使用
重定向
时,您不会传递变量。在中,您可以阅读以下内容:

{redirect, Location, Headers::proplist()}
所以第三个参数是标题列表,而不是传递给模板的变量。这很有意义:变量将取自负责呈现
“/”
的控制器

-module(myapp_world_controller, [Req]).
-compile(export_all).

hello('GET', []) ->
    {ok, [{world}]}.

postcontact('POST', []) ->
         {redirect, "/",[{contactformsend, "ok"}]}.
{% if contactformsend %}

<script>

    alert("Hi there is!");

</script>

{% endif %}
{redirect, Location, Headers::proplist()}