o
    j                     @   s   d dl Z d dlZd dlmZmZ d dlmZ edd e ddZe dd	Z	e d
dZ
e dd dkZdedefddZdedefddZdS )    N)RequestHTTPException)load_dotenvT)override
JWT_SECRETT1e2c3d4e5f67890JWT_ALGORITHMHS256ORG_IDz$ae7aecba-e656-4577-b178-75db2938f040SKIP_TOKEN_EXPIRYfalsetruerequestreturnc           
      C   s  | j d}|r|dstddd|dd }ttd tdd	td
d	g}d }d }|D ]d}|s6q1zt	j
||tgdt id}td|d d  d W  nC t	jy   trzzt	j
||tgddid}td W Y  n% tyy   Y nw tddd ty } z
t|}W Y d }~q1d }~ww |std|  tddd|dp|dp|d}|stddd|dp|dp|dp|dp| j dp| j dpt}	td | d!|	  t|t|	fS )"NAuthorizationzBearer i  zMissing Authorization header)status_codedetail    r    JWT_SECRET_NEW
verify_exp)
algorithmsoptionsu"   Auth — JWT decoded with secret:    z...Fu%   Auth — JWT decoded (expiry skipped)u,   Token expired — get new token from Node.jsu   Auth — JWT decode failed: zInvalid tokeniduser_idsubi  u)   Invalid token payload — missing user idorganization_id	tenant_idorg_idorgIdzX-Tenant-IDzX-Organization-IDu   Auth — user_id=z tenant_id=)headersget
startswithr   splitlistfilterosgetenvjwtdecoder   SKIP_EXPIRYprintExpiredSignatureError	ExceptionstrDEFAULT_ORG_ID)
r   authorizationtokensecrets_to_trypayload
last_errorsecreter   r    r9   //var/www/html/fyndo/pharma/fyndo/auth_tenant.pyget_user_and_tenant   s   






r;   c                 C   s   t | \}}|S )N)r;   )r   r   _r9   r9   r:   get_user_from_tokenS   s   r=   )r(   r*   fastapir   r   dotenvr   r)   r   r   r1   lowerr,   tupler;   r0   r=   r9   r9   r9   r:   <module>   s    
E