o
    ‘¸õa<  ã                   @   s,   d Z ddlmZmZmZ G dd„ deƒZdS )zˆ
authlib.openid.connect.core.tokens
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This module contains methods for adding JWT tokens to requests.
é    )Ú	TokenBaseÚrandom_token_generatorÚget_token_from_headerc                   @   s8   e Zd ZdZ		ddd„Zddd„Zdd	„ Zd
d„ ZdS )ÚJWTToken)Úrequest_validatorÚtoken_generatorÚrefresh_token_generatorÚ
expires_inNc                 C   s*   || _ |pt| _|p| j| _|pd| _d S )Ni  )r   r   r   r   r	   )Úselfr   r   r	   r   © r   úE/usr/lib/python3/dist-packages/oauthlib/openid/connect/core/tokens.pyÚ__init__   s
   
ÿzJWTToken.__init__Fc                 C   s2   t | jƒr|  |¡}n| j}||_| j dd|¡S )z2Create a JWT Token, using requestvalidator method.N)Úcallabler	   r   Úget_jwt_bearer_token)r
   ÚrequestÚrefresh_tokenr	   r   r   r   Úcreate_token   s
   
zJWTToken.create_tokenc                 C   s   t |ƒ}| j ||j|¡S )N)r   r   Úvalidate_jwt_bearer_tokenÚscopes©r
   r   Útokenr   r   r   Úvalidate_request%   s   ÿzJWTToken.validate_requestc                 C   s,   t |ƒ}|r| d¡r| d¡dv rdS dS )NÚeyÚ.)é   é   é
   r   )r   Ú
startswithÚcountr   r   r   r   Úestimate_type*   s   zJWTToken.estimate_type)NNNN)F)Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r   r   r   r   r   r   r   r   r   
   s    
ÿ
	r   N)Ú__doc__Úoauthlib.oauth2.rfc6749.tokensr   r   r   r   r   r   r   r   Ú<module>   s    