django drf 基础学习5
一 简介: 用户登录的验证
二 验证机制:
1 session session需要在服务端存储能够通过session_id而获取的信息,每次请求到达服务端时,需要根据session_id这个key值,获取存储在内存/磁盘/数据库中的信息
2 token token 信息均在token里面,服务端只需要根据token中定义的算法进行解析,即可获得所需认证信息。所以一个是memory cost,一个是time cost
eg: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX3R5cGUiOjEsIm5iZiI6MTUyNjg4NjYzM30.CTZH48xD_TdtDZcgAd8exiCxkryXASruDCbRHsFFD5Y
三 JWT简介
JWT(Json Web Token)是实现token认证的一种通用标准。
四 JWT 安装
1 安装插件
pip3 install djangorestframework-jwt
2 setting中全局设置进行
这里要注意,会对所有VIEW进行验证
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',
),
}
3 添加url
from rest_framework_jwt.views import obtain_jwt_token
url(r'^api-token-auth/', obtain_jwt_token), //使用jwt自带视图实现验证效果
4 数据库需要创建auth_user
1 数据库初始化全局
2 创建用户
python manager createsuperuser
5 进行测试
输入用户名密码
会返回 token
6 访问测试
在url访问头部 添加 jwt tocken信息 然后继续访问
五 总结
1 一个简单的JWT在django中的测试
2 JWT如果在setting里设置都会对全局视图进行生效
3 JWT访问验证需要在header进行 Authorization: JWT+TOCKEN进行拼接访问
4 推荐使用postman构建header,然后进行测试
5 JWT本身包括权限和验证两方面,本篇文章测试的是验证
六 相关文档
https://www.cnblogs.com/hehecat/p/9346700.html
