def post(self): args = parse.parse_args() action = args.get('action', '') action = action.lower() if action.lower() not in [ current_app.config.get('USER_ACTION_LOGIN'), current_app.config.get('USER_ACTION_REGISTER') ]: abort(404, message='请输入正确操作') # 用户注册 if action == current_app.config.get('USER_ACTION_REGISTER'): user_client_register_args = parse_user_client_register.parse_args() username = user_client_register_args.get('username', None) password = user_client_register_args.get('password', None) phone = user_client_register_args.get('phone', None) ''' 判断username是否为字母数字下划线组合 ''' user = UserModel() user.username = username user.password = password user.phone = phone if not user.save(): abort(400, message='添加用户失败') data = { 'status': current_app.config.get('HTTP_CREATE_OK'), 'msg': '用户创建成功', 'data': user } return data # 用户登录 if action == current_app.config.get('USER_ACTION_LOGIN'): user_client_login_args = parse_user_client_login.parse_args() ident = user_client_login_args.get('name_or_phone', None) password = user_client_login_args.get('password', None) user = get_user_client(ident=ident) # 用户存在且密码正确且没有逻辑删除 if user and user.check_password( password) and user.is_delete is False: token = generate_user_client_token() cache.set(token, user.id, timeout=current_app.config.get( 'USER_CLIENT_TOKEN_TIMEOUT', 0)) data = { 'status': current_app.config.get('HTTP_OK'), 'msg': '用户登录成功', 'data': user, 'token': token, } return data data = { 'status': current_app.config.get('HTTP_GET_FAIL'), 'msg': '用户名/密码错误/用户不存在', } return data
def patch(self): print(get_user_client_token()) print(use_token_get_id(get_user_client_token())) id = use_token_get_id((get_user_client_token())) if not id: data = { 'status': current_app.config.get('HTTP_REQUEST_FAIL'), 'msg': '没有指定用户' } return data user = UserModel.query.get(id) user_client_patch_args = parse_user_client_patch.parse_args() phone = user_client_patch_args.get('phone', None) old_password = user_client_patch_args.get('old_password', None) new_password = user_client_patch_args.get('new_password', None) repeat_new_password = user_client_patch_args.get( 'repeat_new_password', None) is_information_changed = False if phone: user.phone = phone is_information_changed = True if user.check_password( old_password ) and new_password and new_password == repeat_new_password: user.password = new_password is_information_changed = True user.save() token = generate_user_client_token() cache.set(token, user.id, timeout=current_app.config.get('USER_CLIENT_TOKEN_TIMEOUT', 0)) is_information_changed_msg = '用户信息更改成功' if is_information_changed else '用户信息没有更改' data = { 'status': current_app.config.get('HTTP_OK'), 'msg': is_information_changed_msg, 'data': marshal(user, user_fields), 'token': token } return data
def post(self): login_args = login_parser.parse_args() username = login_args.get('username') password = login_args.get('password') admin_user = get_admin_client(username) if admin_user and admin_user.check_password(password) and admin_user.is_delete is False: admin_token = generate_admin_client_token() cache.set(admin_token, admin_user.id, timeout=current_app.config.get('ADMIN_CLIENT_TOKEN_TIMEOUT', 0)) data = { 'status': current_app.config.get('HTTP_OK'), 'msg': '管理员登录成功', 'data': marshal(admin_user, admin_user_field), 'token': admin_token, } return data data = { 'status': current_app.config.get('HTTP_GET_FAIL'), 'msg': '用户名/密码错误/用户不存在', } return data
def post(self): cinema_user_parser_args = cinema_user_parser.parse_args() action = cinema_user_parser_args.get('action') if action == current_app.config.get('CINEMA_CLIENT_ACTION_REGISTER'): cinema_user_register_parser_args = cinema_user_register_parser.parse_args() username = cinema_user_register_parser_args.get('username') password = cinema_user_register_parser_args.get('password') cinema_user = CinemaUserModel() cinema_user.username = username cinema_user.password = password if not cinema_user.save(): abort(400, message='添加影院用户失败/此用户已经存在') data = { 'status': current_app.config.get('HTTP_CREATE_OK'), 'msg': '成功添加一条影院用户', 'data': marshal(cinema_user, cinema_user_field) } return data elif action == current_app.config.get('CINEMA_CLIENT_ACTION_LOGIN'): cinema_user_login_parser_args = cinema_user_login_parser.parse_args() username = cinema_user_login_parser_args.get('username') password = cinema_user_login_parser_args.get('password') cinema_user = get_cinema_client(username) if cinema_user and (not cinema_user.is_delete) and cinema_user.check_password(password): token = generate_cinema_client_token() cache.set(token, cinema_user.id, timeout=current_app.config.get('USER_CLIENT_TOKEN_TIMEOUT', 0)) data = { 'status': current_app.config.get('HTTP_OK'), 'msg': '用户登录成功', 'data': marshal(cinema_user, cinema_user_field), 'token': token, } return data data = { 'status': current_app.config.get('HTTP_REQUEST_FAIL'), 'msg': '登录失败,请检查用户名/密码是否正确' } return data abort(400, message='请键入操作')
def patch(self): user = g.user user_client_patch_args = parse_user_client_patch.parse_args() phone = user_client_patch_args.get('phone', None) old_password = user_client_patch_args.get('old_password', None) new_password = user_client_patch_args.get('new_password', None) repeat_new_password = user_client_patch_args.get( 'repeat_new_password', None) is_information_changed = False if phone: user.phone = phone is_information_changed = True if user.check_password( old_password ) and new_password and new_password == repeat_new_password: user.password = new_password is_information_changed = True else: abort(400, message='密码错误/密码不能为空/两次输入密码不一致') user.save() token = generate_user_client_token() cache.set(token, user.id, timeout=current_app.config.get('USER_CLIENT_TOKEN_TIMEOUT', 0)) is_information_changed_msg = '用户信息更改成功' if is_information_changed else '用户信息没有更改' data = { 'status': current_app.config.get('HTTP_OK'), 'msg': is_information_changed_msg, 'data': marshal(user, user_fields), 'token': token } return data