Flask 如何呈现密码表单?

Flask 如何呈现密码表单?,flask,flask-security,Flask,Flask Security,我有一个UI就绪的应用程序,我想用Flask Security添加登录/注销/注册/恢复功能。在我使用默认行为之前,当用户单击“忘记密码”时,他被重定向到特定的端点 现在我想在同一页上忘记密码表单(只是在用户单击相应链接时显示的不同面板中) 我遇到了一个问题,我不能只添加具有相同端点的相同表单,因为Flask Security需要CSRF令牌。我想我可以在页面上呈现它的形式并调整样式。但我不知道怎么做 除非我明确知道没有其他方法,否则我不想关闭csrfcheck。因为您是动态生成表单的,所以我假

我有一个UI就绪的应用程序,我想用
Flask Security
添加登录/注销/注册/恢复功能。在我使用默认行为之前,当用户单击“忘记密码”时,他被重定向到特定的端点

现在我想在同一页上忘记密码表单(只是在用户单击相应链接时显示的不同面板中)

我遇到了一个问题,我不能只添加具有相同端点的相同表单,因为
Flask Security
需要CSRF令牌。我想我可以在页面上呈现它的形式并调整样式。但我不知道怎么做


除非我明确知道没有其他方法,否则我不想关闭
csrf
check。

因为您是动态生成表单的,所以我假设您使用的是AJAX,这就是其中的一部分

您必须使用以下选项启用CSRF模块:

from flask_wtf.csrf import CsrfProtect

CsrfProtect(app)
您可以在每页上访问
csrf\u token()
,您可以通过以下方式获得:

<meta name="csrf-token" content="{{ csrf_token() }}">

var csrftoken = $('meta[name=csrf-token]').attr('content')

$.ajaxSetup({
    beforeSend: function(xhr, settings) {
        if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) {
            xhr.setRequestHeader("X-CSRFToken", csrftoken)
        }
    }
})

var csrftoken=$('meta[name=csrf-token]')。attr('content'))
$.ajaxSetup({
发送前:功能(xhr、设置){
if(!/^(获取| HEAD | OPTIONS | TRACE)$/i.test(settings.type)和&!this.crossDomain){
setRequestHeader(“X-CSRFToken”,CSRFToken)
}
}
})