
    AHjX                     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Facebook SSO Login Helper.    )TYPE_CHECKINGClassVarOptional)DiscoveryDocumentOpenIDSSOBaseNc                   R    e Zd ZU dZdZdZdgZeed<   de	fdZ
dd	ed
ed   defdZy)FacebookSSOz)Class providing login via Facebook OAuth.facebookz https://graph.facebook.com/v19.0emailscopereturnc                 J   K   d| j                    d| j                    ddS w)z#Get document containing handy urls.z*https://www.facebook.com/v9.0/dialog/oauthz/oauth/access_tokenz5/me?fields=id,name,email,first_name,last_name,picture)authorization_endpointtoken_endpointuserinfo_endpoint)base_url)selfs    P/root/tools/cai/cai_env/lib/python3.12/site-packages/fastapi_sso/sso/facebook.pyget_discovery_documentz"FacebookSSO.get_discovery_document   s4      'S!%/BC$(MM?2g!h
 	
s   !#Nresponsesessionzhttpx.AsyncClientc                 8  K   t        |j                  d      |j                  d      |j                  d      |j                  d      | j                  |j                  d      |j                  di       j                  di       j                  dd	      
      S w)z9Return OpenID from user information provided by Facebook.r   
first_name	last_namenameidpicturedataurlN)r   r   r   display_nameproviderr   r   )r   getr"   )r   r   r   s      r   openid_from_responsez FacebookSSO.openid_from_response   s      ,,w'||L1ll;/!f-]]||D!LLB/33FB?CCE4P
 	
s   BB)N)__name__
__module____qualname____doc__r"   r   r   r   __annotations__r   r   dictr   r   r$        r   r
   r
      sI    3H1HiE8
.? 

4 
(K^B_ 
kq 
r,   r
   )r(   typingr   r   r   fastapi_sso.sso.baser   r   r   httpxr
   r+   r,   r   <module>r0      s&      4 4 C C
' 
r,   