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