o
    tBh	                     @   s   d dl Z d dlZd dlZd dlZd dlmZ ejd  dk r$d dlmZ nd dl	mZ dZ
dZg dZdZG d	d
 d
eZG dd deZG dd deZG dd deZdd Zdd Zdd Zdd Zdd Zdd ZdS )    N)shop_url   )urljoinHS256zBearer )issdestsubjtisid
   c                   @      e Zd ZdS )SessionTokenErrorN__name__
__module____qualname__ r   r   l/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/shopify/session_token.pyr          r   c                   @   r   )InvalidIssuerErrorNr   r   r   r   r   r      r   r   c                   @   r   )MismatchedHostsErrorNr   r   r   r   r   r      r   r   c                   @   r   )TokenAuthenticationErrorNr   r   r   r   r   r       r   r   c                 C   s    t | }t|||}t| |S N)_extract_session_token_decode_session_token_validate_issuer)authorization_headerapi_keysecretsession_tokendecoded_payloadr   r   r   decode_from_header$   s   r!   c                 C   s"   |  ts	td| ttd  S )NzFThe HTTP_AUTHORIZATION_HEADER provided does not contain a Bearer token)
startswithPREFIXr   len)r   r   r   r   r   ,   s   
r   c              
   C   s^   zt j| ||tgtdtidW S  t jjy. } ztt	t
|| W Y d }~d S d }~ww )Nrequire)audience
algorithmsleewayoptions)jwtdecode	ALGORITHMLEEWAY_SECONDSREQUIRED_FIELDS
exceptions
PyJWTErrorsix
raise_fromr   str)r   r   r   	exceptionr   r   r   r   3   s   
"r   c                 C   s   t |  t|  d S r   )_validate_issuer_hostname_validate_issuer_and_dest_match)r    r   r   r   r   C   s   r   c                 C   s$   t | d d}t|stdd S )Nr   /zInvalid issuer)r   r   sanitize_shop_domainr   )r    issuer_rootr   r   r   r5   H   s   
r5   c                 C   s0   t | d d}t | d d}||krtdd S )Nr   r7   r   z'The issuer and destination do not match)r   r   )r    r9   	dest_rootr   r   r   r6   O   s
   r6   )r*   rer1   sysshopify.utilsr   version_infourlparser   urllib.parser,   r#   r.   r-   	Exceptionr   r   r   r   r!   r   r   r   r5   r6   r   r   r   r   <module>   s,    