签发----登录成功后签发
认证---需要登录才能访问的接口,通过认证才能继续操作
2 原理-----jwt和session,cookie区别
2.1cookies
2.2 session
2.2.1sessionmiddleware
2.3 jwt
tooken长什么样?
三段式,用.分割
每段b64编码
1st段:公司信息, 加密方式 就是jwt,一般固定
2nd段:荷载payload :一般放:登录用户信息(如用户名,用户id,过期时间。签发时间,是否超级用户)
3rd段:签名singature二进制数据
签发阶段:by头部和荷载使用某种加密方式get
校验阶段:拿到token,取出第1、2部分,通过之前同样的加密方式得到新签名,
比较: 一样 信任
不同 危险
jwt实现了不在后端存储,但安全
3jwt开发重点,签发(登录接口),校验(认证类逻辑)
4.simple_jwt使用(djangorestframework_simplejwt)
django:simple_jwt, django-rest-framework-jwt(不用了,老)
flask:flask-jwt-extend
登陆签发:默认使用auth的user表--》创建个用户--》能登录了
路由: 登陆接口了
path('login/', token_obtain_pair),
# 127.0.0.1:8080/app01/login-->post--》用户名密码就能登陆
- 认证
class UserTokenView(GenericViewSet, mixins.CreateModelMixin):
# 必须登陆后才能新增
authentication_classes = [JWTAuthentication]
permission_classes = [IsAuthenticated]
补充base64
-
(长度一定是4的倍数,如果不是,用等号补齐,后面最多3个等号)
是编码方式,不是加密 作用 1.网络传输----字符串编码成base64 2.图片用b64传给前端 3.jwt使用
如果是b64图片,可以这么保存,解码出来是bytes格式,可以直接写入到文件,wb模式
标签:web,加密,登录,--,签发,jwt,token,json
From: https://www.cnblogs.com/dreammooncy/p/18143525