o
    iw                     @   sH   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 deZ
dS )zGoogle SSO Login Helper.    )ClassVarOptionalN)DiscoveryDocumentOpenIDSSOBaseSSOLoginErrorc                   @   sT   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dZd
efddZdS )	GoogleSSOz'Class providing login via Google OAuth.z<https://accounts.google.com/.well-known/openid-configurationZgoogle)ZopenidemailZprofilescopeNresponsesessionzhttpx.AsyncClientreturnc              
      s`   | dr$t| d| j| d| d| d| d| ddS td	d
| d d)z7Return OpenID from user information provided by Google.Zemail_verifiedr	   subZ
given_nameZfamily_namenamepicture)r	   provideridZ
first_name	last_nameZdisplay_namer   i  zUser z is not verified with Google)getr   r   r   )selfr   r    r   M/home/app/Keep/.python/lib/python3.10/site-packages/fastapi_sso/sso/google.pyopenid_from_response   s   
	zGoogleSSO.openid_from_responsec              	      s`   t  4 I dH }|| jI dH }| }|W  d  I dH  S 1 I dH s)w   Y  dS )z#Get document containing handy urls.N)httpxZAsyncClientr   discovery_urljson)r   r   r   contentr   r   r   get_discovery_document   s   0z GoogleSSO.get_discovery_document)N)__name__
__module____qualname____doc__r   r   r
   r   __annotations__dictr   r   r   r   r   r   r   r   r   r   
   s   
 r   )r!   typingr   r   r   Zfastapi_sso.sso.baser   r   r   r   r   r   r   r   r   <module>   s
    