def check_user_credentials_with_credentials(user_id, token): # Check token status status = TokenSerializer.verify_auth_token(token, user_id) # Is token is expired? if status == SignatureExpired: # Yes: return error status return Constants.error_token_expired() # Is toke not valid? elif status == BadSignature: # Yes: return error status return Constants.error_token_not_valid() # Try to find user with received ID person_model = PersonModel.query.filter_by(person_id=user_id).first() # Have we user with received ID? if person_model is None: # No we haven't: return error status return Constants.error_no_user_id() # Is received token correct? if person_model.token != token: # No: return error status return Constants.error_token_not_valid() # If everything is Ok - return person model return person_model
def post(self): parser = reqparse.RequestParser() parser.add_argument('facebookID', type=str, help='Facebook ID', location='form') parser.add_argument('email', type=str, help='User email', location='form', required=True) parser.add_argument('firstName', type=str, help='First Name', location='form', required=True) parser.add_argument('lastName', type=str, help='Last Name', location='form', required=True) parser.add_argument('password', type=str, help='Password', location='form', required=True) args = parser.parse_args() person_model = PersonModel() person_model.email = args['email'] items = PersonModel.query.filter_by(email=person_model.email).all() if len(items) > 0: return Constants.error_with_message_and_status('user_is_already_exist', 401) parameter = 'password' if not parameter in args: return Constants.error_missed_parameter(parameter) person_model.first_name = args['firstName'] person_model.last_name = args['lastName'] person_model.facebook_id = args['facebookID'] # Encrypt user password password = request.form['password'] encr_password = passlib.encrypt(password, salt_length=100) person_model.password = encr_password # Generate user token with expiration date person_model.token = TokenSerializer.generate_auth_token(person_model.person_id) # Add person to the model db.session.add(person_model) db.session.commit() return person_model.to_dict()