【无标题】

JWT复习

token是json web token (鉴权), 主要是解决会话保持.

cookie和session相同点: 都是k/v格式

cookie:

1. 保存在浏览器(客户端),
1. Cookie 是不安全的,是明文
1. 默认有效期14天, 默认大小4k

sesesion:

  1. sessionid 对应的数据保存在服务端, sessionID是服务端生成,返回给客户端,让浏览器保存, 一般浏览器会保存在cookie中(key:value)

  2. 相对安全, 加密的

  3. Session 是根据设定的, 默认无限制,根据服务器的性能决定

使用session时会有一个session共享的问题? 可以使用redis实现数据共享, 但是需要配置; 6亿**1k=600g 500m

  1. TOKEN

    1. header:

      包含是: token的标识, 要使用的加密算法(HS256)

    2. Payload(载荷)

      用户信息, 但是不能存放敏感信息(比如密码)

    3. 签证

      用来加密的, 把前两部分使用base64编码后的字符串,进行拼接然后再使用header中声明的加密算法进行加密, 加密时还需要一个随机数(“盐”,salt)把第三部分和前两部分再次加密成第三部分, 然后再和前两部分进行拼接

class Order(models.Model):
    order_id = model.IntegerField(primary_key=Ture)
    pay_status = models.CharField(max_length=10, choices=((0, '待收款'), (1, '待发货'), (2, '待收货'), (3, '待评价'), (4, '已完成'),(5,'已取消订单'), verbose_name='支付状态')
    
class OrderView(ApiView):
    def put(self, request):
        """修该订单状态"""
        # 1.获取订单的id
        order_id= request.data.get('order_id')                       
        # 2. 根据订单id 进行状态的修改
        Order.object.filter(order_id=order_id, pay_status=0).update(pay_status=5)                        

1. 为什么使用celery 异步任务发送短信验证码

​ 因为现在的代码是同步阻塞的, 若访问人说过多,会阻塞导致注册/登录不能正常执行.

2. 如何使用celery

# 注意celery 一定要和eventlet 版本匹配否则会出错
pip install celery==4.4.7
pip install eventlet==0.26.1

3. celery 介绍和核心模块

  1. 客户端: 产生任务的
  2. 消息队列: 存放要执行的任务
  3. 调度器,分配任务给中间人
  4. 中间人把任务分配给worker
  5. worker去执行任务,把任务执行结果存放到backend里面

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值