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
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
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
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