我有一个 Django webapp,它既有前端的、可通过网络访问的组件,也有一个可由桌面客户端访问的 API。然而,现在有了新的 CSRF 中间件组件,来自桌面客户端的经过 POST 的 API 请求会得到 403。
我理解为什么会发生这种情况,但是在不影响安全性的情况下解决这个问题的正确方法是什么?是否有某种方式可以在 HTTP 标头中表明它是一个 API 请求并且 Django 不应该检查 CSRF 或者这是一个糟糕的策略?
编辑 -
我目前使用的方法是桌面客户端设置一个标头,X-Requested-With: XMLHttpRequest。这有点骇人听闻,但我不确定如何更好地处理。