
    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Line SSO Login Helper.    )TYPE_CHECKINGClassVarOptional)DiscoveryDocumentOpenIDSSOBaseNc                   T    e Zd ZU dZdZdZg dZeed<   de	fdZ
dd	ed
ed   defdZy)LineSSOz%Class providing login via Line OAuth.linezhttps://api.line.me/oauth2/v2.1)emailprofileopenidscopereturnc                 J   K   d| j                    d| j                    ddS w)z#Get document containing handy urls.z,https://access.line.me/oauth2/v2.1/authorizez/tokenz	/userinfo)authorization_endpointtoken_endpointuserinfo_endpoint)base_url)selfs    L/root/tools/cai/cai_env/lib/python3.12/site-packages/fastapi_sso/sso/line.pyget_discovery_documentzLineSSO.get_discovery_document   s2      'U!%v6$(MM?)!<
 	
s   !#Nresponsesessionzhttpx.AsyncClientc                    K   t        |j                  d      dd|j                  d      | j                  |j                  d      |j                  d            S w)z5Return OpenID from user information provided by Line.r   Nnamesubpicture)r   
first_name	last_namedisplay_nameprovideridr   )r   getr"   )r   r   r   s      r   openid_from_responsezLineSSO.openid_from_response   sP     ,,w'!f-]]||E"LL+
 	
s   AA)N)__name__
__module____qualname____doc__r"   r   r   r   __annotations__r   r   dictr   r   r%        r   r
   r
      sG    /H0H4E84
.? 


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
g 
r-   