U
    TºcE  ã                   @   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Úget_token_from_headerÚrandom_token_generatorc                   @   s4   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   úG/tmp/pip-unpacked-wheel-dp7l75bz/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   Zget_jwt_bearer_token)r
   ÚrequestZrefresh_tokenr	   r   r   r   Úcreate_token   s
    
zJWTToken.create_tokenc                 C   s   t |ƒ}| j ||j|¡S )N)r   r   Zvalidate_jwt_bearer_tokenZscopes©r
   r   Útokenr   r   r   Úvalidate_request'   s      ÿzJWTToken.validate_requestc                 C   s,   t |ƒ}|r(| d¡r(| d¡dkr(dS dS )NZ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__Zoauthlib.oauth2.rfc6749.tokensr   r   r   r   r   r   r   r   Ú<module>   s   