o
    i                     @   sP   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 de	ZdS )z LinkedIn SSO Oauth Helper class.    )TYPE_CHECKINGClassVarDictOptional)DiscoveryDocumentOpenIDSSOBaseNc                   @   sr   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	d
ZdefddZddeded defddZdS )LinkedInSSOz'Class providing login via LinkedIn SSO.Zlinkedin)ZopenidZprofileemailscopeacceptzapplication/jsonadditional_headersreturnc                 C   s
   d| j iS )Nclient_secret)r   self r   O/home/app/Keep/.python/lib/python3.10/site-packages/fastapi_sso/sso/linkedin.py_extra_query_params   s   
zLinkedInSSO._extra_query_paramsc                    s   ddddS )Nz/https://www.linkedin.com/oauth/v2/authorizationz-https://www.linkedin.com/oauth/v2/accessTokenz$https://api.linkedin.com/v2/userinfo)Zauthorization_endpointZtoken_endpointZuserinfo_endpointr   r   r   r   r   get_discovery_document   s
   z"LinkedInSSO.get_discovery_documentNresponsesessionzhttpx.AsyncClientc              	      s6   t |d| j|d|d|d|ddS )Nr
   subZ
given_nameZfamily_namepicture)r
   provideridZ
first_name	last_namer   )r   getr   )r   r   r   r   r   r   openid_from_response   s   z LinkedInSSO.openid_from_response)N)__name__
__module____qualname____doc__r   r   r   __annotations__r   propertyr   r   r   r   dictr   r   r   r   r   r   r   r	      s   
  r	   )r"   typingr   r   r   r   Zfastapi_sso.sso.baser   r   r   Zhttpxr	   r   r   r   r   <module>   s    