def post(self): verify_post_parser = reqparse.RequestParser() verify_post_parser.add_argument( 'token', type=str, required=True ) verify_post_parser.add_argument( 'verify_token', type=str, required=True ) args = verify_post_parser.parse_args() user = User.verify_auth_token(args['token']) if not user: raise InvalidToken() if user.confirmed: raise DuplicateInfo('邮箱已绑定') if user.confirm(args['verify_token']): return {'message': '邮箱绑定成功'}, 200 else: return InvalidToken('verify token')
def post(self): eval_imgs_post_parser = reqparse.RequestParser() eval_imgs_post_parser.add_argument( 'token', type=str, required=True ) args = eval_imgs_post_parser.parse_args() user = User.verify_auth_token(args['token']) if not user: raise InvalidToken() if 'photo' in request.files: filename = hashlib.md5(str(user.nickname).encode('utf-8') + str(time.time()).encode('utf-8')).hexdigest()[:10] # If it ends with a dot, the file’s extension will be appended to the end. img = photos.save(request.files['photo'], name=filename + '.') img_url = photos.url(img) user.avatar_url = img_url db.session.add(user) db.session.commit() return {'avatar_url': img_url}, 200
def post(self): args = email_post_parser.parse_args() email = email_type(args['email']) user = User.verify_auth_token(args['token']) if not user: raise InvalidToken() dup_email = User.query.filter_by(email=email).first() if dup_email: raise DuplicateInfo('该邮箱已被绑定') if user.email: user.confirmed = False user.email = email db.session.add(user) db.session.commit() token = user.generate_confirmation_token().decode() send_email(email, '确认你的邮件', 'email/confirm', token=token) return {'message': '确认邮件已发送'}, 200
def post(self): args = user_info_post_parser.parse_args() user = User.verify_auth_token(args['token']) if not user: raise InvalidToken() user.sex = args['sex'] user.birth_date = args.get('birth_date') user.hobby = args.get('hobby') db.session.add(user) db.session.commit() return {'message': 'ok'}, 200
def post(self): post_parser = reqparse.RequestParser() post_parser.add_argument('token', type=str, required=True) args = post_parser.parse_args() user = User.verify_auth_token(args['token']) if not user: raise InvalidToken() # 更新 uuid,这样原来的 token 解析出来的 uuid 是旧的 # 判定此时 token 已经失效 user.uid = str(uuid.uuid4()) db.session.add(user) db.session.commit() return {'message': 'ok'}, 200
def delete(self, comment_id=None): args = comment_delete_parser.parse_args() user = User.verify_auth_token(args['token']) if not user: raise InvalidToken() if not comment_id: raise LackOfInfo('评论 id') comment = Comment.query.get(comment_id) if not comment: raise ObjectNotFound('评论') db.session.delete(comment) db.session.commit() return {'message': 'ok'}, 200
def post(self): # 获得自己的信息 post_parser = reqparse.RequestParser() post_parser.add_argument('token', type=str, required=True) args = post_parser.parse_args() user = User.verify_auth_token(args['token']) if not user: raise InvalidToken() result = dict() result['id'] = user.id result['nickname'] = user.nickname result['email'] = user.email result['avatar_url'] = user.avatar_url result['sex'] = user.sex result['birth_date'] = user.birth_date result['hobby'] = user.hobby return result, 200
def post(self): args = comment_post_parser.parse_args() user = User.verify_auth_token(args['token']) if not user: raise InvalidToken() dup_comment = Comment.query.filter_by(content=args['content']).first() if dup_comment and dup_comment.user_id == user.id: raise DuplicateInfo('评论重复') comment = Comment() comment.user_id = user.id comment.article_id = args['article_id'] comment.content = args['content'] db.session.add(comment) db.session.commit() return {'message': 'ok'}, 200
def post(self): args = forget_post_parser.parse_args() user = User.query.filter_by(nickname=args['nickname']).first() if not user: raise ObjectNotFound('用户不存在') if not user.confirmed: raise WrongInfo('邮箱未确认,无法重置密码') if user.email != args['email']: raise WrongInfo('邮箱或用户名错误') if Verify.confirm(args['forget_token'], args['nickname'], args['email']): user.password = args['new_password'] db.session.add(user) db.session.commit() return {'message': '密码重置成功'}, 200 else: raise InvalidToken('verify token')
def post(self): verify_post_parser = reqparse.RequestParser() verify_post_parser.add_argument('token', type=str, required=True) verify_post_parser.add_argument('old_password', type=str, required=True) verify_post_parser.add_argument('new_password', type=password_type, required=True) args = verify_post_parser.parse_args() user = User.verify_auth_token(args['token']) if not user: raise InvalidToken() if not user.verify_password(args['old_password']): raise WrongInfo('密码错误') user.password = args['new_password'] db.session.add(user) db.session.commit() return {'message': 'ok'}, 200