
    AHj                     R    d Z ddlmZmZmZ ddlmZmZmZ erddl	Z	 G d de      Z
y)zYandex SSO Login Helper.    )TYPE_CHECKINGClassVarOptional)DiscoveryDocumentOpenIDSSOBaseNc                   T    e Zd ZU dZdZg dZeed<   dZde	fdZ
dd	ed
ed   defdZy)	YandexSSOz)Class providing login using Yandex OAuth.yandex)zlogin:emailz
login:infozlogin:avatarscopez$https://avatars.yandex.net/get-yapicreturnc                    K   ddddS w)zHOverride the discovery document method to return Yandex OAuth endpoints.z!https://oauth.yandex.ru/authorizezhttps://oauth.yandex.ru/tokenzhttps://login.yandex.ru/info)authorization_endpointtoken_endpointuserinfo_endpoint )selfs    N/root/tools/cai/cai_env/lib/python3.12/site-packages/fastapi_sso/sso/yandex.pyget_discovery_documentz YandexSSO.get_discovery_document   s      'J=!?
 	
s   	Nresponsesessionzhttpx.AsyncClientc           
      &  K   d}|j                  d      x}| j                   d| d}t        |j                  d      |j                  d      | j                  |j                  d      |j                  d      |j                  d	      |
      S w)z4Converts Yandex user info response to OpenID object.Ndefault_avatar_id/z/islands-200default_emaildisplay_nameid
first_name	last_name)emailr   providerr   r   r   picture)get
avatar_urlr   r!   )r   r   r   r"   	avatar_ids        r   openid_from_responsezYandexSSO.openid_from_response   s     !&9::IG)9+\BG,,/!n5]]||D!||L1ll;/
 	
s   BB)N)__name__
__module____qualname____doc__r!   r   r   __annotations__r$   r   r   dictr   r   r&   r       r   r
   r
      sG    3HCE8C7J
.? 

4 
(K^B_ 
kq 
r-   r
   )r*   typingr   r   r   fastapi_sso.sso.baser   r   r   httpxr
   r   r-   r   <module>r1      s&     4 4 C C
 
r-   