【发布时间】:2018-08-01 09:50:34
【问题描述】:
禁用 CSRF 功能是否是 Slack 斜杠命令服务器的最佳实践?
我想通过Slack slash command调用Django中的API视图函数,例如/test。
当我使用任何浏览器调用视图函数的 URL 时(所以它是一个 GET 请求),它按预期工作。
但是,当我在 Slack 中运行 /test 时,我在 slack 中得到了 403_client_error,在 Django shell 中得到了 Forbidden (CSRF cookie not set)。
我相信这是因为 Slack 发送了一个 POST 请求,而 Django 需要 CSRF 令牌来处理任何 POST 请求。
我的问题是我是否应该为此视图禁用 CSRF 检查。会不会有很大的风险?或者有什么解决办法?
【问题讨论】:
-
我可以通过在视图顶部添加
@csrf_exempt来禁用 CSRF,然后 slack 命令可以正常工作。
标签: django csrf slack slack-commands