
    AHjw                     N    d Z ddlmZmZ ddlZddlmZmZmZm	Z	  G d de      Z
y)zGoogle SSO Login Helper.    )ClassVarOptionalN)DiscoveryDocumentOpenIDSSOBaseSSOLoginErrorc                   T    e Zd ZU dZdZdZg dZeed<   dde	de
d	   d
efdZd
efdZy)	GoogleSSOz'Class providing login via Google OAuth.z<https://accounts.google.com/.well-known/openid-configurationgoogle)openidemailprofilescopeNresponsesessionzhttpx.AsyncClientreturnc                 V  K   |j                  d      rvt        |j                  d      | j                  |j                  d      |j                  d      |j                  d      |j                  d      |j                  d            S t        d	d
|j                  d       d      w)z7Return OpenID from user information provided by Google.email_verifiedr   sub
given_namefamily_namenamepicture)r   providerid
first_name	last_namedisplay_namer   i  zUser z is not verified with Google)getr   r   r   )selfr   r   s      N/root/tools/cai/cai_env/lib/python3.12/site-packages/fastapi_sso/sso/google.pyopenid_from_responsezGoogleSSO.openid_from_response   s     <<()ll7+<<&#<<5",,}5%\\&1 Y/  C5g)>(??[!\]]s   B'B)c                   K   t        j                         4 d{   }|j                  | j                         d{   }|j	                         }|cddd      d{    S 7 J7 )7 	# 1 d{  7  sw Y   yxY ww)z#Get document containing handy urls.N)httpxAsyncClientr   discovery_urljson)r    r   r   contents       r!   get_discovery_documentz GoogleSSO.get_discovery_document   sl     $$& 	 	'$[[););<<HmmoG	 	 	<	 	 	 	sT   BA&BA,A(A,B A*!B(A,*B,A>2A53A>:B)N)__name__
__module____qualname____doc__r&   r   r   r   __annotations__dictr   r   r"   r   r)        r!   r
   r
   
   sK    1RMH4E84^4 ^(K^B_ ^kq ^.? r1   r
   )r-   typingr   r   r$   fastapi_sso.sso.baser   r   r   r   r
   r0   r1   r!   <module>r4      s      %  R R r1   