
    o j6                     |    d dl Z d dlmZmZ d dlmZ d dl mZ d dlZd dlmZ  ed            G d d	          Z	dS )
    N)datetime	timedelta)HTTPException)InvalidTokenError)load_dotenvT)overridec                       e Zd Z ej        dd          Z ej        dd          Z e ej        dd                    Ze	de
defd	            Ze	d
ede
fd            ZdS )JWTUtils
JWT_SECRET%fyndo_secret_key_change_in_productionJWT_ALGORITHMHS256JWT_EXPIRATION_MINUTES1440datareturnc                    |                                  }t          j                    t          t          j                  z   }|                    d|i           t          j        |t          j	        t          j
                  }|S )N)minutesexp)	algorithm)copyr   utcnowr   r
   r   updatejwtencoder   r   )r   payloadexpiretokens       @C:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\jwt.pycreate_tokenzJWTUtils.create_token   sq    ))++""Yx7V%W%W%WWv'''
,
 
 

     r   c                     	 t          j        | t          j        t          j        g          }|S # t           j        $ r t          dd          t          $ r t          dd          w xY w)N)
algorithmsi  zToken expired)status_codedetailzInvalid token)r   decoder
   r   r   ExpiredSignatureErrorr   r   )r   r   s     r   decode_tokenzJWTUtils.decode_token   s    
	Ij#$23  G
 N( 	I 	I 	ICHHHH  	I 	I 	ICHHHH	Is	   -0 ;A+N)__name__
__module____qualname__osgetenvr   r   intr   staticmethoddictstrr    r(    r!   r   r
   r
      s        <)PQQJBIow77M S+CV!L!LMM	4 	C 	 	 	 \	 IC ID I I I \I I Ir!   r
   )
r   r   r   fastapir   r   r,   dotenvr   r
   r2   r!   r   <module>r5      s    



 ( ( ( ( ( ( ( ( ! ! ! ! ! ! ! ! ! ! ! ! 				       T    I I I I I I I I I Ir!   