Redis-IP限流、请求次数限制、唯一登陆

Redis-IP限流、请求次数限制、唯一登陆

我司有一个线上购物平台,为了防止网页爬虫、恶意用户高频访问与秒杀环节产生的高并发使服务器宕机。并且根据用户反馈有两个人同时登录账号导致数据不一致,数据被更改,用户体验不佳。现我司要求使用redis实现如下功能

1.使用redis保持用户状态,同一时间只能有一位用户在线
2.用户在60秒时间戳内只能访问15次服务器
3.用户使用中间件校验请求次数
4.用户账号如果在别处登录提示用户账号已在别处登录,并且更改用户当前登录状态

使用redis保持用户状态,用户每次登录产生唯一的token存贮到redis中key为用户id ,value为token然后使用make_password对token进行加密返回客户端客户端尽行存贮,用户每次请求携带token如果在别处登录token发生改变请求接口对token进行校验如果token与redis中存贮不一致,则账号在别处登录,提示用户;参考代码如下:

import uuid
from rest_framework.response import Response
from rest_framework.views import APIView
from user.models import User

pool = redis.ConnectionPool(host='127.0.0.1'

猜你喜欢

转载自blog.csdn.net/m0_47202787/article/details/106649303
今日推荐