JWT验证 和权限

JWT的优点:

体积小,因而传输速度更快

多样化的传输方式,可以通过URL传输、POST传输、请求头Header传输(常用)

简单方便,服务端拿到jwt后无需再次查询数据库校验token可用性,也无需进行redis缓存校验

在分布式系统中,很好地解决了单点登录问题

很方便的解决了跨域授权问题,因为跨域无法共享cookie

jwt的安装

pip3 install -i https://pypi.douban.com/simple/ djangorestframework-jwt (使用豆瓣镜像源下载)

在setting里面注册

'rest_framework.authtoken',

路由

path('api-token-auth/',obtain_jwt_token),(使用post方法 在请求体里面传入username和password)

配置

importdatetime

JWT_AUTH={

        'JWT_EXPIRATION_DELTA':datetime.timedelta(days=7),# Token 过期时间为一周

        'JWT_AUTH_HEADER_PREFIX':'JWT',# Token的头为:JWT adashkjdhaskjhd21312312

        'JWT_ALLOW_REFRESH':False,# 允许刷新吗

        'JWT_RESPONSE_PAYLOAD_HANDLER':'app06.utils.jwt_response_payload_handler',#    规定jwt返       回的数据}

自定义返回数据

1. 新建一个util的py文件

2.定义一个函数 jwt_response_payload_handler

权限

新建一个permission的py文件

创建一个类继承BasePermission

在view里面添加权限

你可能感兴趣的:(JWT验证 和权限)