我正在尝试使用curl在Flask应用上提交表单。不幸的是,我一直遇到" CSRF令牌丢失"错误。
我试过了:
curl -X POST --form csrf_token=token --form data=@file.txt --form submit=submit {url} -v
我在浏览器中打开时使用了应用中的csrf_token
。我还查看了https://flask-wtf.readthedocs.org/en/latest/csrf.html并尝试在标题中设置X-CSRFToken
,但仍然遇到了同样的错误。有关使用curl将令牌提供给烧瓶应用程序的正确方法的任何建议吗?
答案 0 :(得分:1)
问题是你只是发送令牌和烧瓶无法让你的会话存在于浏览器cookie中。因此,如果您希望通过curl访问您的视图不够在POST请求中传递令牌值,您必须附加Cookie 。您可以使用以下命令将cookie写入本地文件:
curl -c /path/to/cookiefile {url}
然后修改它并使用附加的cookie和令牌向您的服务器发送POST请求:
curl -b /path/to/cookiefile -X POST --form csrf_token=token --form data=@file.txt --form submit=submit {url} -v