一个$引发的血案

舍不得Django的Admin界面,最近用Django Rest framework(官网)重构公司之前用Flask写的REST API服务端。

然后打算用JWT做认证,找到一个简洁的框架Django Rest framework JWT(官网),按文档配置完成,执行:

$ curl -X POST -d "username=admin&password=abc123" http://localhost:8000/api-token-auth/

时,一直报

Authentication credentials were not provided.

重做权限配置之类这的那的折腾了两天,最后发现Django Rest framework默认的登录界面消失,检查urls.py发现url(r'^', xf_views.api_root),少了一个截至符$,加上,改为url(r'^$', xf_views.api_root),登录界面找回,JWT token也获取成功。

另外,如果在使用过程中出现如下错误:

{"non_field_errors":["Error decoding signature."]}

考虑修改你的setting.py,加上编码申明# coding=utf-8

For example, "name@something.com". If someone replies to you it will be via email.
For example, "http://someaddress.com"