Ejemplo n.º 1
0
    def get(self, request):
        response = CommonResponse()
        response.data = {'order_bill_status_list': {}}
        order_bill_status_list = OrderStatusAndBillStatus.objects.all()
        for item in order_bill_status_list:
            response.data['order_bill_status_list'][
                item.id] = item.status_content

        response.msg = '获取订单和钱款信息成功'
        return Response(response.get_dic())
Ejemplo n.º 2
0
    def post(self, request):
        print('开始验证')
        response = CommonResponse()
        check_form = LoginCheckForm(request.POST)
        if check_form.is_valid():
            # 获取客户端传来的token
            client_token = request.token
            print(client_token)
            # print('token', client_token)
            # 建立redis连接
            conn = redis.Redis(connection_pool=POOL)
            # 获取服务器端token
            try:
                keys = conn.keys()
                keys = [str(key, encoding='utf-8') for key in keys]
                # print('client_token', client_token)
                # print('keys', keys)
                # print(keys[3])
                # print('status', client_token in keys)
                # print()

            except Exception as e:
                print(e)
                keys = None

            # 如果存在token,就不再验证用户密码,直接通过了
            if client_token in keys:

                response.status = 200
                response.msg = '登录成功'
                response.data = {'salt_cookie': client_token}

            # 如果客户端或服务器端有一方没有token的时候,直接根据手机号和密码登录
            elif (not client_token) or (client_token not in keys):
                telephone = request.POST.get('telephone', None)
                passwd = request.POST.get('passwd', None)
                print(telephone)
                print(passwd)
                if not (telephone and passwd):
                    response.msg = '登录失败'
                else:
                    user = models.User.objects.filter(telephone=telephone, password=passwd).first()
                    # 如果查询成功,表示信息正确,生成token值
                    # if isinstance(user, models.User):
                    if user:
                        # 设置返回json的状态
                        response.status = 200
                        response.msg = '登录成功'
                        # 生成token的函数做成类
                        token_api = CheckUserToken()
                        token_str = token_api.get_token_str(telephone)
                        # 并设置过期时间,放在redis中
                        conn = redis.Redis(connection_pool=POOL)
                        # 在redis保存什么数据?
                        conn.set(token_str, user.id, ex=86400)

                        response.data = {'salt_cookie': token_str}
                    else:
                        response.msg = '账户或密码错误,请重新登录'

            # 客户端和服务器都带有token数据时,做校验,如果校验失败,不在验证用户,跳转登录信息
            else:
                response.msg = '登录失败'
        else:
            response.status = 101
            response.msg = '注册失败,信息格式不正确'

        return Response(response.get_dic())