
    AHj                     V    d Z ddlmZ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 LinkedIn SSO Oauth Helper class.    )TYPE_CHECKINGClassVarDictOptional)DiscoveryDocumentOpenIDSSOBaseNc                   x    e Zd ZU dZdZg dZeed<   ddiZeed<   e	de
fd	       Zdefd
Zddeded   defdZy)LinkedInSSOz'Class providing login via LinkedIn SSO.linkedin)openidprofileemailscopeacceptzapplication/jsonadditional_headersreturnc                     d| j                   iS )Nclient_secret)r   selfs    P/root/tools/cai/cai_env/lib/python3.12/site-packages/fastapi_sso/sso/linkedin.py_extra_query_paramszLinkedInSSO._extra_query_params   s    !3!344    c                    K   ddddS w)Nz/https://www.linkedin.com/oauth/v2/authorizationz-https://www.linkedin.com/oauth/v2/accessTokenz$https://api.linkedin.com/v2/userinfo)authorization_endpointtoken_endpointuserinfo_endpoint r   s    r   get_discovery_documentz"LinkedInSSO.get_discovery_document   s     &WM!G
 	
s   	Nresponsesessionzhttpx.AsyncClientc           
         K   t        |j                  d      | j                  |j                  d      |j                  d      |j                  d      |j                  d            S w)Nr   sub
given_namefamily_namepicture)r   providerid
first_name	last_namer'   )r   getr(   )r   r!   r"   s      r   openid_from_responsez LinkedInSSO.openid_from_response   sV     ,,w']]||E"||L1ll=1LL+
 	
s   A'A))N)__name__
__module____qualname____doc__r(   r   r   __annotations__r   propertyr   r   r   r    dictr   r   r-   r   r   r   r   r      sl    1H4E84$,.@#AA5T 5 5
.? 

4 
(K^B_ 
kq 
r   r   )r1   typingr   r   r   r   fastapi_sso.sso.baser   r   r	   httpxr   r   r   r   <module>r8      s&    & : : C C
' 
r   