首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取CSRF-Token并赋值给变量

获取CSRF-Token并赋值给变量
EN

Stack Overflow用户
提问于 2019-08-25 23:25:03
回答 1查看 233关注 0票数 0

我希望获得flask-wtf提供的csrf-token,并将其赋给一个变量,以便将来在我的flask应用程序架构中使用。有一种方法可以使用隐藏字段{{ form.csrf_token }}呈现它,或者通过jinja的csrf_token()呈现它。但是文档并没有提到如何实现,比如说:

代码语言:javascript
复制
from flask import Flask, jsonify
from flask_wtf.csrf import CSRFProtect

app = Flask(__name__)
app.secret_key = 'secret'
csrf = CSRFProtect(app)


@app.route('/api/get/endpoint_which_returns_json/', methods=['GET'])
def api():
    csrf_token = # ??? what belongs here ???
    return jsonify({'token': csrf_token})


if __name__ == '__main__':
    app.run(debug=True)

如何做到这一点呢?提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2019-08-26 08:30:23

当您通过Flask-WTF在模板中使用{{ form.csrf_token }}{{ csrf_token() }}时,它们只是调用flask_wtf.csrf.generate_csrf()函数。您可以导入它并自己调用它,以便在视图中生成一个令牌:

代码语言:javascript
复制
from flask_wtf.csrf import generate_csrf

@app.route('/', methods=['GET'])
def api():
    return jsonify({'token': generate_csrf()})

我假设这里的想法是,api客户端将负责将令牌与POST请求一起返回到其他api资源?如果您只是在服务器端生成令牌,以便能够验证原本需要它的表单,则可以使用you may as well just disable CSRF protection

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57647321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档