我正在尝试Django JWT Auth并注意到网址对一种帖子的反应很好,但对另一种帖子反应不好,但我可以找出原因。
基本上,如果我使用readme.md中提到的cURL POST,一切都按计划进行:
$ curl -X POST -H "Content-Type: application/json" -d '{"username":"admin","password":"abc123"}' http://localhost:8000/api-token-auth/
但如果您使用其他类型的cURL POST并使用相同的信息,则不起作用:
$ curl -d 'username=admin&password=abc123' http://localhost:8000/api-token-auth/
我知道“内容类型”是不同的,但不应该以同样的方式接受请求,它们都是格式良好的帖子?
答案 0 :(得分:1)
Curl的-d
选项实际上发送请求,就像它是一个Web浏览器。我的猜测是,您正在测试的URL没有标准的Web表单,因此无法实际处理请求。
TL; DR非常确定Django JWT Auth不支持application/x-www-form-urlencoded
内容类型。
来自curl手册:
-d --data (HTTP)将POST请求中的指定数据发送到HTTP 服务器,与用户拥有的浏览器相同 填写HTML表单并按下提交按钮。这将 导致curl使用content-type将数据传递给服务器 应用程序/ x-WWW窗体-urlencoded。比较-F, - form。
希望这有帮助!