o
    RDi                     @  sh   d dl mZ d dlmZmZ ddlmZ ddlmZm	Z	 ddl
mZ er*ddlmZ G d	d
 d
eZdS )    )annotations)TYPE_CHECKINGAny   )ID_TOKEN_AUTHENTICATOR   )AuthByPluginAuthType)AuthByWebBrowser)SnowflakeConnectionc                      sf   e Zd ZdZed!ddZed"ddZd# fddZd$ddZd%ddZ	d&ddZ
d'dd Z  ZS )(AuthByIdTokenzInternal IdToken Based Authentication.

    Works by accepting an id_toke and use that to authenticate. Only be used when users are using EXTERNAL_BROWSER_AUTHENTICATOR
    returnr	   c                 C  s   t jS N)r	   ID_TOKENself r   Y/var/www/Datamplify/venv/lib/python3.10/site-packages/snowflake/connector/auth/idtoken.pytype_      zAuthByIdToken.type_strc                 C  s   | j S r   	_id_tokenr   r   r   r   assertion_content   r   zAuthByIdToken.assertion_contentid_tokenapplicationprotocol
str | NonehostportNonec                   s4   t  jdi | || _|| _|| _|| _|| _dS )z(Initialized an instance with an IdToken.Nr   )super__init__r   _application	_protocol_host_port)r   r   r   r   r   r   kwargs	__class__r   r   r"      s   

zAuthByIdToken.__init__c                 C  s
   d | _ d S r   r   r   r   r   r   reset_secrets-   s   
zAuthByIdToken.reset_secretsr'   r   c                 K  s   d S r   r   )r   r'   r   r   r   prepare0   s   zAuthByIdToken.prepareconnr   dict[str, bool]c                K  s@   t | j| j| j| j|j|jd|_||j |j	
  ddiS )N)r   r   r   r   timeoutbackoff_generatorsuccessT)r
   r#   r$   r%   r&   login_timeout_backoff_generator
auth_class_authenticate_auth_classr*   )r   r,   r'   r   r   r   reauthenticate3   s   
zAuthByIdToken.reauthenticatebodydict[Any, Any]c                 C  s   t |d d< | j|d d< dS )z9Idtoken needs the authenticator and token attributes set.dataAUTHENTICATORTOKENN)r   r   )r   r7   r   r   r   update_bodyE   s   zAuthByIdToken.update_body)r   r	   )r   r   )r   r   r   r   r   r   r   r   r   r   r   r    )r   r    )r'   r   r   r    )r,   r   r'   r   r   r-   )r7   r8   r   r    )__name__
__module____qualname____doc__propertyr   r   r"   r*   r+   r6   r<   __classcell__r   r   r(   r   r      s    


r   N)
__future__r   typingr   r   networkr   	by_pluginr   r	   
webbrowserr
   
connectionr   r   r   r   r   r   <module>   s   