【发布时间】:2021-01-22 02:52:42
【问题描述】:
我正在尝试进行本地文件上传,但是当我执行 POST 请求时,我收到了invalid CSRF (Cross Site Request Forgery) token, make sure all requests include a valid '_csrf_token' param or 'x-csrf-token' header 错误
我已经尝试调用这个函数
def csrf_token(conn) do
Plug.Conn.get_session(conn, :csrf_token)
end
我的 .html.eex :
<form action="/accounts/new/csv-validator" method="post"
enctype="multipart/form-data">
<input type="hidden" name="_csrf_token" value="<%= @get_csrf_token() %>">
<input class="form-control input-bordered" id="user_photo" name="user[photo]" type="file">
</form>
预期结果:使用有效的 csrf 令牌成功执行 POST
凤凰版:v1.3.4
【问题讨论】:
-
老实说,我认为这里没有足够的信息。我看到的唯一可疑的事情是你的第一个 sn-p "csrf_token()" 中有一个方法,然后在输入中你有 "@get_csrf_token()"。
-
试试这个
name="csrf-token" id="csrf-token" value="<%= Plug.CSRFProtection.get_csrf_token() %>"