rest_framework_jwt 身份认证

Django学习第十六天

前后端分离项目中,通常使用jwt(Json-Web-Token)的形式用于验证用户是否登录,而不使用session和cookie的形式。

安装JWT

python有众多的第三方模块,其中必然也有jwt的相关模块,使用pip即可下载

pip install rest_framework_jwt

配置JWT

模块下载完后,需要在setting文件中进行配置

REST_FRAMEWORK = {

    # 认证
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.BasicAuthentication',
    ),
}
JWT_AUTH = {
    'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1),  # 有效期
}

使用JWT

在app的路由中设置

from rest_framework_jwt.views import obtain_jwt_token

urlpatterns = [
    url(r'^login/', obtain_jwt_token),
]

在使用之前需确定user模型需继承django自带的用户认证系统AbstractUser才可以使用。因在obtain_jwt_token的源码中使用的是authenticate来验证用户是否存在。

测试

使用postman进行测试
测试结果
验证成功返回token值。

遇到的坑

注册的用户需使用User.objects.create_user进行注册,不然无法验证通过

笔者目前才刚刚开始django的学习,如有错误之处,请大牛见谅指出

posted @ 2019-01-02 15:37  一颗大白菜_20181203  阅读(219)  评论(0编辑  收藏  举报