Flask-Security CSRF 令牌

2024-04-08

我有一个 Flask 应用程序作为 REST API 后端。我想为后端实现基于令牌的身份验证,但为了做到这一点,我需要检索用户令牌。 Flask-Security 文档明确指出,要检索令牌,需要执行 HTTP POST,并将身份验证详细信息作为 JSON 数据发送到身份验证端点。不幸的是,我不明白如何检索执行此类请求所需的 CSRF 令牌。

如果我使用扩展提供的登录页面/模板,CSRF 令牌将在表单的隐藏字段中传递给客户端。问题是:

如何在不访问和解析登录页面的情况下检索 CSRF 令牌,例如从使用 $http 方法的 angularJS 应用程序或移动应用程序?

显然,我可以避免使用 Flask-Security 并自己实现这些部分,但我对网络应用程序相对缺乏经验,我觉得我可能会以错误的方式处理这个问题。


我有一个类似的用例,并按照 Flask-WTF 文档中的示例结束了解决:https://flask-wtf.readthedocs.org/en/latest/csrf.html#ajax https://flask-wtf.readthedocs.org/en/latest/csrf.html#ajax

因此,通过 CSRF 保护应用程序CsrfProtect(app),csrf_token() 在所有模板中都可用。然后您可以轻松地通过脚本标签使其可用:

<script type="text/javascript">
    var csrftoken = "{{ csrf_token() }}"
</script>

现在将令牌添加到 Flask-Security /login 端点的发布数据中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flask-Security CSRF 令牌 的相关文章

随机推荐