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里面添加权限

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容