
    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#Twitter (X) SSO Oauth Helper class.    )TYPE_CHECKINGClassVarOptional)DiscoveryDocumentOpenIDSSOBaseNc                   X    e Zd ZU dZdZddgZeed<   dZdZ	de
fdZdd
eded   defdZy	)
TwitterSSOz&Class providing login via Twitter SSO.twitterz
users.readz
tweet.readscopeTreturnc                    K   ddddS w)Nz&https://twitter.com/i/oauth2/authorizez&https://api.twitter.com/2/oauth2/tokenz"https://api.twitter.com/2/users/me)authorization_endpointtoken_endpointuserinfo_endpoint )selfs    O/root/tools/cai/cai_env/lib/python3.12/site-packages/fastapi_sso/sso/twitter.pyget_discovery_documentz!TwitterSSO.get_discovery_document   s     &NF!E
 	
s   	Nresponsesessionzhttpx.AsyncClientc                    K   |d   j                  dd      j                  d      ^}}|rdj                  |      nd }t        t	        |d   d         |d   d   ||| j
                        S w)Ndataname  idusername)r   display_name
first_name	last_nameprovider)getsplitjoinr   strr"   )r   r   r   r    last_name_partsr!   s         r   openid_from_responsezTwitterSSO.openid_from_response   sx     '/'7';';FB'G'M'Mc'R$
_1@CHH_-d	8F#D)*!&)*5!]]
 	
s   A+A-)N)__name__
__module____qualname____doc__r"   r   r   __annotations__	uses_pkcerequires_stater   r   dictr   r   r(   r       r   r
   r
      sQ    0H#\2E82IN
.? 
	
4 	
(K^B_ 	
kq 	
r1   r
   )r,   typingr   r   r   fastapi_sso.sso.baser   r   r   httpxr
   r   r1   r   <module>r5      s&    ) 4 4 C C
 
r1   