django-restframwork-jwt中的踩坑

jwt的配置

1.pip install djangorestframework-jwt
经过我的验证发现python3.6,django2.0环境下也能使用,官方文档应该是还未更新

django-restframwork的官方文档上使用的是pip install django-rest-framework-simplejwt,区别在于
jwt生成一个token,simplejwt生成一个access(同token)和一个refresh(用于更新token),为了方便我还是用jwt.
2.在settings.py中配置

REST_FRAMEWORK = {
   
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.BasicAuthentication',
    ),
}

3.在项目目录urls.py中配置

from rest_framework_jwt.views import obtain_jwt_token
#...

urlpatterns = [
    '',
    # ...

    url(r'^api-token-auth/', obtain_jwt_token),
]

验证jwt是否生效

1.浏览器中进入http://localhost:8000/api-token-auth/,如下图
django-restframwork-jwt中的踩坑_第1张图片
输入用户名密码并post
django-restframwork-jwt中的踩坑_第2张图片
如果有token表明成功.

配置成功仍有错误

我遇到的错误:若登录成功后跳转到首页,然后不到1秒又跳转回登陆页面:
这个错误我找了很久,最后发现其实是个简单的错误,这是因为首页请求的url中有一个是本地的,
如首页是http://localhost:8000/index,而加载首页所需要请求的其中一个url是本地url,因此一直出现
身份校验失败的错误,只需要将本地url的域名也改成localhost:8000即可.

理论上只要配置不错便不会再出错!

你可能感兴趣的:(django)