Django Rest Framework 电商项目 7-5 JSON Web Token方式完成用户登录

在github上搜索:django rest framework jwt,至:https://github.com/GetBlimp/django-rest-framework-jwt

可以点击它的文档看一下:http://getblimp.github.io/django-rest-framework-jwt/

首先是在虚拟环境中安装,命令行进入虚拟环境,执行:

pip install djangorestframework-jwt

然后是将:

'rest_framework_jwt.authentication.JSONWebTokenAuthentication',

加入到'DEFAULT_AUTHENTICATION_CLASSES'中。

然后需要在根urls.py中做一定的配置,引入:

from rest_framework_jwt.views import obtain_jwt_token

在urlpatterns中添加:

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

发现这个的url和drf自带的token认证模式的url是一样的。我们给它改名为:

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

然后用postman来测试这个url能否返回token:

http://127.0.0.1:8000/jwt-token-auth/

和之前一样post的内容是:

{
    "username": "用户的账号",
    "password": "用户的密码"
}

可以看到这个url正确的返回了token。我们来使用它,文档中说明了如何使用。

我们来请求商品列表页:

http://127.0.0.1:8000/goods/

在header中添加以下的键值对(注意JWT与返回的Token值之间的空格):

Name: Authorization
Value: JWT 返回的Token值

打断点、debug项目,然后发送get请求,看看能否获取到我们的用户。

如果感兴趣,可以看看源码,看看它是否是按上一节的博客中那样的逻辑来编写的。

你可能感兴趣的:(Django Rest Framework 电商项目 7-5 JSON Web Token方式完成用户登录)