def register(): """用户注册接口: 1.获取参数phone_num 手机号,phonecode 短信验证码,password 密码 2.校验数据 3.从Redis获取短信验证码,和传来的数据校验,如果正确 4.新增user对象, 5.跳转首页,保持登录状态 :return 返回注册信息{ 're_code':'0','msg':'注册成功'} """ # 1.获取参数phone_num 手机号,phonecode 短信验证码,password 密码 json_dict = request.json phone_num = json_dict.get('phone_num') phonecode_client = json_dict.get('phonecode') password = json_dict.get('password') # 2.校验数据 if not all([phone_num, phonecode_client, password]): return jsonify(re_code=RET.PARAMERR, msg='参数不完整') # 校验手机号是否正确 if not re.match( r'^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$', phone_num): return jsonify(re_code=RET.PARAMERR, msg='手机号不正确') # 3.从Redis获取短信验证码,和传来的数据校验,如果正确 try: phonecode_server = redis_conn.get('PhoneCode:' + phone_num) except Exception as e: current_app.logger.debug(e) return jsonify(re_code=RET.DBERR, msg='查询短信验证码失败') if phonecode_server.decode() != phonecode_client: return jsonify(re_code=RET.PARAMERR, msg='短信验证码错误') # 4.新增user对象, user = User() user.name = phone_num user.phone_num = phone_num user.password_hash = password try: db.session.add(user) db.session.commit() except Exception as e: current_app.logger.debug(e) db.session.rollback() return jsonify(re_code=RET.DBERR, msg='注册失败') # 5.跳转首页,保持登录状态 session['user_id'] = user.id session['name'] = user.name session['phone_num'] = user.phone_num # 6.响应结果 return jsonify(re_code=RET.OK, msg='注册成功')
def register(): """用户注册接口""" # 1.获取参数phone_num 手机号,phonecode 短信验证码,password 密码 phone_num = request.json.get('phone_num') phonecode_client = request.json.get('phonecode') password = request.json.get('password') #2.校验数据 if not all([phone_num, phonecode_client, password]): return jsonify(re_code=RET.PARAMERR, msg='参数不完整') # 校验手机号是否正确 if not re.match(r'1[3456789]\d{9}$', phone_num): return jsonify(re_code=RET.PARAMERR, msg='手机号不正确') # 3.从Redis获取短信验证码,和传来的数据校验,如果正确 try: phonecode_server = redis_conn.get('PhoneCode:' + phone_num) except Exception as e: current_app.logger.debug(e) return jsonify(re_code=RET.DBERR, msg='查询短信验证码失败') if phonecode_server != phonecode_client: return jsonify(re_code=RET.PARAMERR, msg='短信验证码错误') #4.新增user对象, user = User() user.name = phone_num user.phone_num = phone_num user.password_hash = password try: db.session.add(user) db.session.commit() except Exception as e: current_app.logger.debug(e) db.session.rollback() return jsonify(re_code=RET.DBERR, msg='注册失败') #5.跳转首页,保持登录状态 session['user_id'] = user.id session['name'] = user.name session['phone_num'] = user.phone_num #6.响应结果 return jsonify(re_code=RET.OK, msg='注册成功')
def register(): """用户注册接口: 1.获取参数phone_num 手机号,phonecode 短信验证码,password 密码 2.校验数据 3.从Redis获取短信验证码,和传来的数据校验,如果正确 4.新增user对象, 5.跳转首页,保持登录状态 :return 返回注册信息{ 're_code':'0','msg':'注册成功'} """ # 1.获取参数phone_num 手机号,phonecode 短信验证码,password 密码 print('注册') json_dict = request.get_json() phone_num = json_dict.get('phone_num') sms_code = json_dict.get('phonecode') password = json_dict.get('password') password2 = json_dict.get('password2') #2.校验数据 print(phone_num) print(sms_code) print(password2) print(password) if not all([phone_num, sms_code, password]): return jsonify(re_code=RET.PARAMERR, msg='参数不完整') print(1) # 校验手机号是否正确 if not re.match(r'^0\d{2,3}\d{7,8}$|^1[358]\d{9}$|^147\d{8}$', phone_num): return jsonify(re_code=RET.PARAMERR, msg='手机号不正确') print(2) # 确认密码 if password != password2: return jsonify(re_code=RET.PWDERR, msg='确认密码不一致') print(3) # 3.从Redis获取短信验证码,和传来的数据校验,如果正确 try: real_sms_code = redis_conn.get('PhoneCode:' + phone_num) except Exception as e: current_app.logger.debug(e) return jsonify(re_code=RET.DBERR, msg='查询短信验证码失败') print(4) # 短信验证 # str.encode('utf-8') # bytes.decode('utf-8') print(real_sms_code) real_sms_code = real_sms_code.decode('utf-8') print(real_sms_code) print(sms_code) if real_sms_code != sms_code: return jsonify(re_code=RET.PARAMERR, msg='短信验证码错误') print(5) #4.新增user对象, user = User() user.name = phone_num user.phone_num = phone_num # 加密密码 user.password_hash = password # 提交 try: db.session.add(user) db.session.commit() except IntegrityError as e: current_app.logger.errer(e) # 回滚 db.session.rollback() return jsonify(re_code=RET.DBERR, msg='手机号已被注册') except Exception as e: current_app.logger.errer(e) db.session.rollback() return jsonify(re_code=RET.DBERR, msg='注册失败') print(6) #5.跳转首页,保持登录状态 session["user_id"] = user.id session["name"] = user.name session["phone_num"] = user.phone_num #6.响应结果 print('注册成功') return jsonify(re_code=RET.OK, msg='注册成功')