Django restframework之Token验证的缺陷及jwt的简单使用
一.主要缺陷:
1.Token验证是放在一张表中,即authtoken_token中,key没有失效时间,永久有效,一旦泄露,后果不可想象,安全性极差。
2.不利于分布式部署或多个系统使用一套验证,authtoken_token是放在某台服务器上的,如果分布式部署,将失效,或多个系统用一套验证,将必须复制该表到相应服务器上,麻烦费力。
详情参照:http://lion1ou.win/2017/01/18/
二.jwt的使用:
1.安装:
1.1pip install djangorestframework-jwt;
1.2在githup上找源码安装
2.配置:
2.1在你的settings.py
,添加JSONWebTokenAuthentication
到Django REST框架DEFAULT_AUTHENTICATION_CLASSES
。
REST_FRAMEWORK = {'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated',),'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework_jwt.authentication.JSONWebTokenAuthentication','rest_framework.authentication.SessionAuthentication', 'rest_framework.authentication.BasicAuthentication', ), }
2.2在您urls.py
添加以下URL路由以启用通过POST获取令牌包括用户的用户名和密码。
from rest_framework_jwt.views import obtain_jwt_token#... urlpatterns = ['',# ... url(r'^api-token-auth/', obtain_jwt_token),]