o
    &zh  ã                   @   sF   d dl Z d dlmZ d dlmZ d dlmZ G dd„ deƒZeƒ ZdS )é    N)ÚHttpRequest)ÚAuthBase)Úauthenticate_by_x_session_tokenc                   @   sD   e Zd ZU dZdZeed< defdd„Zdede	j
e fdd	„Zd
S )ÚXSessionTokenAuthzt
    This security class uses the X-Session-Token that django-allauth
    is using for authentication purposes.
    ÚapiKeyÚopenapi_typeÚrequestc                 C   s&   |   |¡}|rt|ƒ}|r|d S d S )Nr   )Úget_session_tokenr   )Úselfr   ÚtokenÚuser_session© r   úb/var/www/html/kangema/venv/lib/python3.10/site-packages/allauth/headless/contrib/ninja/security.pyÚ__call__   s   
zXSessionTokenAuth.__call__Úreturnc                 C   s   |j  d¡S )z×
        Returns the session token for the given request, by looking up the
        ``X-Session-Token`` header. Override this if you want to extract the token
        from e.g. the ``Authorization`` header.
        zX-Session-Token)ÚheadersÚget)r
   r   r   r   r   r	      s   z#XSessionTokenAuth.get_session_tokenN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚ__annotations__r   r   ÚtypingÚOptionalr	   r   r   r   r   r   
   s
   
 r   )	r   Údjango.httpr   Úninja.security.baser   Ú$allauth.headless.internal.sessionkitr   r   Úx_session_token_authr   r   r   r   Ú<module>   s    
