Exemplo n.º 1
0
def get_token_auth_header():
    auth = request.headers.get('Authorization', None)
    if not auth:
        raise ErrorHandler({
            'status_code': 401,
            'description': 'Authorization header is expected.'
        })

    parts = auth.split()
    if parts[0].lower() != 'bearer':
        raise ErrorHandler({
            'status_code':
            401,
            'description':
            'Authorization header must start with "Bearer".'
        })

    elif len(parts) == 1:
        raise ErrorHandler({
            'status_code': 401,
            'description': 'Token not found.'
        })

    elif len(parts) > 2:
        raise ErrorHandler({
            'status_code':
            401,
            'description':
            'Authorization header must be bearer token.'
        })

    token = parts[1]
    return token
Exemplo n.º 2
0
def verify_decode_jwt(token):
    try:
        payload = jwt.decode(token, secret_key, algorithms='HS256')

        return payload

    except jwt.ExpiredSignatureError:
        raise ErrorHandler({
            'status_code': 401,
            'description': 'Token expired.'
        })

    except jwt.InvalidTokenError:
        raise ErrorHandler({
            'status_code':
            401,
            'description':
            'Incorrect claims. Please, check the audience and issuer.'
        })
    except Exception:
        raise ErrorHandler({
            'status_code':
            400,
            'description':
            'Unable to parse authentication token.'
        })
 def delete_like(self, liker_id, post_id):
     try:
         to_be_deleted = Post_liker_relation.query.filter_by(
             liker_id=liker_id, post_id=post_id).first()
         to_be_deleted.delete()
         if to_be_deleted is None:
             raise ErrorHandler({
                 'description': 'Like does not exist.',
                 'status_code': 404
             })
     except SQLAlchemyError as e:
         error = str(e)
         raise ErrorHandler({'description': error, 'status_code': 500})
     return True
def check_permissions(permission, payload):
    if 'permissions' not in payload.keys():
        raise ErrorHandler({
            'status_code':
            401,
            'description':
            'Permission parameter missing in payload.'
        })

    if permission not in payload['permissions']:
        raise ErrorHandler({
            'status_code': 401,
            'description': 'Permission not found.'
        })
    return True
Exemplo n.º 5
0
def check_hash(password, hash):
    if check_password_hash(password, hash):
        return
    raise ErrorHandler({
        'status_code': 404,
        'description': 'Password is incorrect.'
    })
 def insert_like(self, liker_id, post_id):
     like = {'liker_id': liker_id, 'post_id': post_id}
     try:
         new_like = Post_liker_relation(**like)
         Post_liker_relation.insert(new_like)
     except SQLAlchemyError as e:
         error = str(e)
         raise ErrorHandler({'description': error, 'status_code': 500})
     return new_like
 def get_one_liker_all_posts(self, liker_id):
     try:
         posts=Post_liker_relation.query.filter(Post_liker_relation.liker_id==liker_id).\
         join(User).filter(Post_liker_relation.liker_id==User.user_id).\
         with_entities(User.user_id,User.name,Post_liker_relation.post_id)
     except SQLAlchemyError as e:
         error = str(e)
         raise ErrorHandler({'description': error, 'status_code': 500})
     data = [c for c in posts]
     return data