Python CSRF令牌不匹配-表单

Python CSRF令牌不匹配-表单,python,flask,flask-wtforms,csrf-token,Python,Flask,Flask Wtforms,Csrf Token,我正在尝试使用表单设置一个非常简单的登录表单 出于某种原因,我得到了一个验证异常 {'csrf_token': ['The CSRF tokens do not match.']} 这是html <form method="POST" action="/login"> {{ form.csrf_token }} <div class="login"> {{wtf.form_field(form.username)}

我正在尝试使用表单设置一个非常简单的登录表单

出于某种原因,我得到了一个验证异常

{'csrf_token': ['The CSRF tokens do not match.']}
这是html

<form method="POST" action="/login">
        {{ form.csrf_token }}
        <div class="login">
            {{wtf.form_field(form.username)}}
            {{wtf.form_field(form.password)}}
        </div>
        <input class="btn btn-primary" type="submit" value="login">
我试着调试wtforms以找到错误,从日志和令牌匹配来看,一切都正常

我真的不知道它为什么会失败,因为它似乎是同样的原因

我已经尝试过将form.csrf来回更改为
form.hidden_tag()
,并尝试过使用这里描述的csrf类 似乎什么都不管用。。
任何帮助都会很好。

你运气好吗?我正在为一个类似的问题而挣扎
@app.route('/login', methods=["GET", "POST"])
def login():
form = LoginForm()
if request.method == 'POST':
    from itsdangerous import BadData, SignatureExpired, URLSafeTimedSerializer
    from flask import session
    app.logger.debug("Token in session")
    app.logger.debug(session['csrf_token'])
    from werkzeug.security import safe_str_cmp
    s = URLSafeTimedSerializer(app.secret_key, salt='wtf-csrf-token')
    token = s.loads(form.csrf_token.current_token, max_age=3600)
    app.logger.debug("Token calced")
    app.logger.debug(token)
    app.logger.debug("ret from safe_cmp = ")
    app.logger.debug(safe_str_cmp(session['csrf_token'],token))
    app.logger.debug(form.meta.csrf_context)
    app.logger.debug(form.meta.csrf_secret)
    app.logger.debug(form.csrf_token.current_token)
    app.logger.debug(app.secret_key)
app.logger.debug("login")
if form.validate_on_submit():
    # irrelevant login code
    login_user(user)
else:
    app.logger.debug("Validation error")
    app.logger.debug(form.errors)