# TODO 登录接口并解决token重复存入redis的问题 def login1(request): username = request.POST.get('username') # email+passowrd phone+password password = request.POST.get('password') if all([username, password]): username1 = models.NewUser.objects.filter(Q(email=username) | Q(phone=username)) if not username1.exists(): return JsonResponse({"code": -1, "msg": "用户名不正确"}) if username1.first().password != md5(password): return JsonResponse({"code": -1, "msg": "密码输入错误"}) user_key = 'session_key:%s' % username1.first().phone r = django_redis.get_redis_connection() redis_token = r.get(user_key) if redis_token: return JsonResponse({"code": 0, "msg": "登录成功", "token": redis_token.decode()})#加decode是给转换成字符串的 token = md5(str(time.time()) + username) user_dict = json.dumps(model_to_dict(username1.first())) expire_time = 60 * 60 * 24 r.set(user_key, token, expire_time) r.set(token, user_dict, expire_time) return JsonResponse({"code": 0, "msg": "登录成功", "token": token}) else: return JsonResponse({"code": 0, "msg": "字段不能为空"})
Django写登录接口并解决token重复存入redis的问题
最新推荐文章于 2023-07-18 17:03:07 发布