我现在发现的是在模板上,我在视图中传递了两种形式,每种形式上的csrf_token不是唯一的。我不太明白为什么? CSRF令牌应该是唯一的
per格式,对吗?
[我在Chrome中检查了令牌,它们是相同的-都包含在代码的底部。 <form method="post" class="mt-4" id="form_1">
{{ form1.csrf_token }}
<div class="form-group"
{{ form1.form_field1(class_='form-control', id='foo', type='text',
placeholder='Enter your data') }}
</div>
<div class="form-group">
{{ form1.form_field2(class_='form-control', id='bar',
type='text', placeholder='More data please') }}
</div>
{{ form1.submit(class_='btn btn-lg btn-info btn-block', form='form_1' ) }}
<!-- <button form="form_1" type="submit"-->
<!-- class="btn btn-lg btn-info btn-block">-->
<!-- <i class="fa fa-lock fa-lg"></i> -->
<!-- </button>-->
</form>
<form class="mt-3" method="post" id="form_2">
<div class="form-group input-group">
{{ form2.csrf_token }}
{% if current_user.has_value() %}
{{form2.field(type='checkbox', checked=1)}}
{% else %}
{{ form2.field(type='checkbox') }}
{% endif %}
{{ form2.update(type='submit', class_='btn btn-light input-group-append') }}
</div>
</form>
<form method="post" class="mt-4" id="form_1">
<input id="csrf_token" name="csrf_token" type="hidden" value="ImM5OWI2NTJiY2RhOGJkNjlkYjFkYzliM2JkMDM4N2JmODQwMDU1YWQi.XiAz0A.7r1lBMq-tO0wrukerCfIFgXwK9M">
.....
<form class="mt-3" method="post" id="form_2">
<div class="form-group input-group">
<input id="csrf_token" name="csrf_token" type="hidden" value="ImM5OWI2NTJiY2RhOGJkNjlkYjFkYzliM2JkMDM4N2JmODQwMDU1YWQi.XiAz0A.7r1lBMq-tO0wrukerCfIFgXwK9M">
另一个有趣的问题是,您在同一文档中使用相同的id
属性获得2个HTML元素。