Esempio n. 1
0
def output_json(data, code, headers=None):
    """Makes a Flask response with a JSON encoded body"""
    # 如果是app接口,且不是支付回调,加密后返回
    Logger.log("请求id:%s 响应\n返回JSON:%s\n" % (session['requestId'], data))
    resp = make_response(json.dumps(data), code)
    resp.headers.extend(headers or {})
    return resp
Esempio n. 2
0
    def handle(self):
        parser = reqparse.RequestParser()
        parser.add_argument('type')
        args = parser.parse_args()

        usage = ''
        if args.type is None:
            return CommonUtil.json_response(-1, '缺少参数:type')
        elif args.type == '0':
            usage = 'regAccount'  # 注册账号
        elif args.type == '1':
            usage = 'findPassword'  # 找回密码
        elif args.type == '2':
            usage = 'adminLogin'  # 管理台登录
        else:
            return CommonUtil.json_response(-1, 'type参数格式错误')

        # 用客户端ip来作为sendId是为了使频繁请求时可以替换这个key下面原来的验证码
        md5 = hashlib.md5()
        md5.update("validimage_{}_{}".format(request.environ['REMOTE_ADDR'],
                                             usage).encode('utf-8'))
        sendId = md5.hexdigest()
        validImage = ValidImage.create()

        Redis.setex(sendId, 60, validImage['code'])

        data = {"img": validImage['img'], "sendId": sendId}

        Logger.log("生成图片验证码 ip:{} sendId:{} code:{}".format(
            request.environ['REMOTE_ADDR'], sendId, validImage['code']))

        return CommonUtil.json_response(0, "success", data)
Esempio n. 3
0
    def __init__(self):
        md5 = hashlib.md5()
        md5.update(os.urandom(24))
        session['requestId'] = md5.hexdigest()

        Logger.log("请求 请求id:%s\n来源IP:%s\n请求方法:%s\n请求路径:%s\n请求参数:%s" %
                   (session['requestId'], request.environ['REMOTE_ADDR'],
                    request.environ['REQUEST_METHOD'], request.url,
                    json.dumps(request.form)))
        Resource.__init__(self)
Esempio n. 4
0
    def __init__(self):
        md5 = hashlib.md5()
        md5.update(os.urandom(24))
        session['requestId'] = md5.hexdigest()

        Logger.log(
            ">>>>>>>>>>>>>>>>>>>>>>> 请求 请求id:%s >>>>>>>>>>>>>>>>>>>>>>>\n%s|%s|%s|%s|%s"
            %
            (session['requestId'],
             time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
             request.environ['REMOTE_ADDR'], request.environ['REQUEST_METHOD'],
             request.url, request.get_data()))
        Resource.__init__(self)
Esempio n. 5
0
    def real_time_recognize(
        self,
        width=640,
        height=360,
        resize=1.0,
        detector="mtcnn",
        flip=False,
        graphics=True,
        socket=None,
        mtcnn_stride=1,
    ):
        """Real-time facial recognition
        :param width: width of frame (default: 640)
        :param height: height of frame (default: 360)
        :param resize: resize scale (default: 1. = no resize)
        :param detector: face detector type (default: "mtcnn")
        :param flip: whether to flip horizontally or not (default: False)
        :param graphics: whether or not to use graphics (default: True)
        :param socket: socket (dev) (default: None)
        :param mtcnn_stride: stride frame stride (default: 1)
        """

        assert self._db, "data must be provided"
        assert 0.0 <= resize <= 1.0, "resize must be in [0., 1.]"

        graphics_controller = GraphicsRenderer(width, height, resize)
        logger = Logger(frame_limit=10, frame_threshold=5)
        pbar = ProgressBar(logger, ws=socket)
        cap = Camera()
        detector = FaceDetector(detector,
                                self.img_shape,
                                min_face_size=240,
                                stride=mtcnn_stride)

        while True:
            _, frame = cap.read()
            cframe = frame.copy()

            # resize frame
            if resize != 1:
                frame = cv2.resize(frame, (0, 0), fx=resize, fy=resize)

            # facial detection and recognition
            info = self.recognize(frame, detector, flip=flip)
            face, is_recognized, best_match, elapsed = info

            # logging and socket
            if is_recognized and is_looking(face):
                log_result = logger.log(best_match)
                pbar.update(end=log_result is not None)
                if log_result and socket:
                    socket.send(json.dumps({"best_match": best_match}))

            # graphics
            if graphics:
                graphics_controller.add_graphics(cframe, *info)
                cv2.imshow("AI Security v2021.0.1", cframe)
                if cv2.waitKey(1) & 0xFF == ord("q"):
                    break

        cap.release()
        cv2.destroyAllWindows()
Esempio n. 6
0
 def json_response(cls, code, msg, data={}):
     res = {"code": code, "message": msg, "data": data}
     Logger.log("响应 请求id:%s\n返回内容:%s" %
                (session['requestId'], json.dumps(res)))
     return res