U
    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   AD:\Project\agus\mfile_papteng_new\webapp\middleware\jwt_cookie.py__init__   s    z JWTFromCookieMiddleware.__init__c              
   C   s   |j dsd S d|jkrd S |jd}|s2d S d| |jd< z| j|}| j||_W n0 t	t
tfk
r   t |_|jdd  Y nX d S )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_request)N)__name__
__module____qualname__r   r   r   r   r   r   r   
   s   
r   N)Z#rest_framework_simplejwt.exceptionsr   r   Zrest_framework.exceptionsr   django.utils.deprecationr   django.contrib.auth.modelsr   Zwebapp.api.auth.custom_jwtr   r   r   r   r   r   <module>   s
   