o
    hc                     @   sT   d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 G dd deZdS )	    )InvalidToken
TokenError)AuthenticationFailed)MiddlewareMixin)AnonymousUser)CustomJWTAuthenticationc                   @   s   e Zd ZdddZdd ZdS )JWTFromCookieMiddlewareNc                 C   s   || _ t | _d S N)get_responser   jwt_auth)selfr
    r   ?/var/www/html/mfile_papteng_new/webapp/middleware/jwt_cookie.py__init__   s   z JWTFromCookieMiddleware.__init__c              
   C   s   |j dsd S d|jv rd S |jd}|sd S d| |jd< z| j|}| j||_W d S  t	t
tfyI   t |_|jdd  Y d S w )Nz/api/HTTP_AUTHORIZATIONaccess_tokenzBearer )path
startswithMETACOOKIESgetr   get_validated_tokenget_useruserr   r   r   r   pop)r   requestr   validated_tokenr   r   r   process_request   s   
z'JWTFromCookieMiddleware.process_requestr	   )__name__
__module____qualname__r   r   r   r   r   r   r   
   s    
r   N)#rest_framework_simplejwt.exceptionsr   r   rest_framework.exceptionsr   django.utils.deprecationr   django.contrib.auth.modelsr   webapp.api.auth.custom_jwtr   r   r   r   r   r   <module>   s    