Ejemplo n.º 1
0
def register():
    data = request.get_json()
    user_ID = data['user_ID']
    password = data['password']
    email = data['email']
    code = data.pop('code')
    captcha = data.pop("captcha")
    phone = data.pop('phone')
    data.pop('user_ID')
    data.pop('password')
    if user_ID is None or password is None or code is None:
        return jsonify({'response': 'invalid user or password'}), 400
    # 检查user_ID phone email 是否被占用
    if UserBusiness.check_exist({'user_ID': user_ID}):
        return jsonify({"response": {
            "error": "this user_ID has been used,please try an other one"}}), 400
    if UserBusiness.check_exist({'phone': phone}):
        return jsonify({"response": {
            "error": "this phone number has been used,please try an other one"}}), 400
    if UserBusiness.check_exist({'email': email}):
        return jsonify({"response": {
            "error": "this email has been used,please try an other one"}}), 400
    # 检查 captcha
    try:
        res = user_service.verify_code(code=captcha, phone=phone)
    except Error:
        return jsonify({
            "response": {'error': "验证码错误"}
        }), 400
    # 建立用户并创建tutorial project
    try:
        added_user = user_service.register(user_ID, password, phone, code,
                                           **data)
        added_user = json_utility.convert_to_json(added_user.to_mongo())
        added_user.pop('password')
        # 为新用户创建tutorial project
        from server3.service.project_service import ProjectService
        from server3.service.app_service import AppService
        user_token = create_access_token(identity=added_user["user_ID"])
        AppService.create_tutorial_project(
            user_ID=added_user["user_ID"],
            user_token=user_token
        )
        return jsonify({'response': added_user}), 200
    except Error as e:
        return jsonify({
            "response": {"error": e.args[0]}
        }), 400
Ejemplo n.º 2
0
def login_with_phone():
    """
    通过手机号登录,
    :return:
    :rtype:
    """
    data = request.get_json()
    phone = data.pop("phone")
    # message_id = data.pop("message_id")
    code = data.pop("code")
    if not UserBusiness.check_exist({'phone': phone}):
        return jsonify({"response": {
            "error": "This phone number is not registered, "
                     "please input the right phone number"}}), 400

    try:
        result = user_service.verify_code(code=code, phone=phone)
        if result:
            user = user_business.get_by_phone(phone=phone)
            response = {'response': {
                'token': create_access_token(identity=user.user_ID),
                'user': json_utility.convert_to_json(user.to_mongo())}}
            return jsonify(response), 200
    except Error as e:
        return jsonify({
            "response": {
                "error": 'Please enter correct verify code'
            }
        }), 400
Ejemplo n.º 3
0
def send_verification_code(phone):
    usage = request.args.get('usage', None)
    if usage == 'register' and UserBusiness.check_exist({'phone': phone}):
        return jsonify({"response": {
            "error": {
                "message": "this phone has been used,please try an other one"}
        }}), 400
    try:
        user_service.send_verification_code(phone)
        return jsonify({
            "response": "success"
        }), 200
    except Error as e:
        print("e.args[0]", e.args[0])
        return jsonify({
            "response": {
                "error": e.args[0]
            }
        }), 400
Ejemplo n.º 4
0
def login():
    user_ID = request.json.get('user_ID', None)
    password = request.json.get('password', None)

    if not UserBusiness.check_exist({'user_ID': user_ID}):
        return jsonify({
            "response": "This user_ID is not registered, please input the right user_ID"}), 400
    try:
        user = user_service.authenticate(user_ID, password)
        if not user:
            return jsonify({'response': 'Wrong password'}), 400
        user_obj = json_utility.convert_to_json(user.to_mongo())
        user_obj.pop('password')
        if hasattr(user, "avatar"):
            del user.avatar
    except DoesNotExist as e:
        return jsonify({'response': '%s: %s' % (str(
            DoesNotExist), e.args)}), 400
    # Identity can be any data that is json serializable
    response = {
        'response': {'token': create_access_token(identity=user.user_ID),
                     'user': user_obj}}
    return jsonify(response), 200