
    Tњh                         S SK r S SKJr  S SKJr  S SKJr  S SKJrJ	r	  S SK
Jr  S SKJr  S SKJr   " S	 S
5      r " S S\	5      r " S S\5      r\/rg)    N)EmailAddress)get_adapter)QUERY_EMAIL)
AuthActionProviderAccount)GoogleOAuth2Adapter)OAuth2Error)OAuth2Providerc                       \ rS rSrSrSrSrg)Scope   emailprofile N)__name__
__module____qualname____firstlineno__EMAILPROFILE__static_attributes__r       jD:\Anime\Ugyen\janka_web_project\venv\Lib\site-packages\allauth/socialaccount/providers/google/provider.pyr   r      s    EGr   r   c                   $    \ rS rSrSrS rS rSrg)GoogleAccount   a6  
The account data can be in two formats. One, originating from
the /v2/userinfo endpoint:

    {'email': 'john.doe@gmail.com',
     'given_name': 'John',
     'id': '12345678901234567890',
     'locale': 'en',
     'name': 'John',
     'picture': 'https://lh3.googleusercontent.com/a/code',
     'verified_email': True}

The second, which is the payload of the id_token:

    {'at_hash': '-someHASH',
     'aud': '123-pqr.apps.googleusercontent.com',
     'azp': '123-pqr.apps.googleusercontent.com',
     'email': 'john.doe@gmail.com',
     'email_verified': True,
     'exp': 1707297277,
     'given_name': 'John',
     'iat': 1707293677,
     'iss': 'https://accounts.google.com',
     'locale': 'en',
     'name': 'John',
     'picture': 'https://lh3.googleusercontent.com/a/code',
     'sub': '12345678901234567890'}
c                 L    U R                   R                  R                  S5      $ )Nlinkaccount
extra_datagetselfs    r   get_profile_urlGoogleAccount.get_profile_url/   s    ||&&**622r   c                 L    U R                   R                  R                  S5      $ )Npicturer   r#   s    r   get_avatar_urlGoogleAccount.get_avatar_url2   s    ||&&**955r   r   N)r   r   r   r   __doc__r%   r)   r   r   r   r   r   r      s    :36r   r   c                   Z   ^  \ rS rSrSrSr\r\r	Sr
S rU 4S jrS rS rS	 rS
 rSrU =r$ )GoogleProvider6   googleGoogleTc                 |    [         R                  /n[        (       a  UR                  [         R                  5        U$ )N)r   r   r   appendr   )r$   scopes     r   get_default_scope GoogleProvider.get_default_scope=   s'    ;LL%r   c                 X   > [         TU ]  X5      nU[        R                  :X  a  SUS'   U$ )Nzselect_account consentprompt)superget_auth_params_from_requestr   REAUTHENTICATE)r$   requestactionret	__class__s       r   r9   +GoogleProvider.get_auth_params_from_requestC   s.    g27CZ...4CM
r   c                 "    SU;   a  US   $ US   $ )Nsubidr   r$   datas     r   extract_uidGoogleProvider.extract_uidI   s    D=;Dzr   c                 r    [        UR                  S5      UR                  S5      UR                  S5      S9$ )Nr   family_name
given_name)r   	last_name
first_name)dictr"   rC   s     r   extract_common_fields$GoogleProvider.extract_common_fieldsN   s3    ((7#hh}-xx-
 	
r   c                     / nUR                  S5      nU(       aK  [        UR                  S5      =(       d    UR                  S5      5      nUR                  [        X4SS95        U$ )Nr   email_verifiedverified_emailT)r   verifiedprimary)r"   boolr2   r   )r$   rD   r=   r   rR   s        r   extract_email_addresses&GoogleProvider.extract_email_addressesU   sS    !DHH%56T$((CS:TUHJJ|%DQR
r   c                 D   SSK Jn  UR                  S5      nU(       d  [        5       R	                  S5      e UR                  U R                  US9nU R                  X5      nU$ ! [        [        R                  4 a  n[        5       R	                  S5      UeS nAff = f)Nr   )viewsid_tokeninvalid_token)app
credential)&allauth.socialaccount.providers.googlerX   r"   r   validation_error_verify_and_decoder[   r	   requestsRequestExceptionsociallogin_from_response)r$   r;   tokenrX   r\   identity_dataelogins           r   verify_tokenGoogleProvider.verify_token]   s    @YYz*
-00AA	I!44HH 5 M
 ..wF X667 	I-00AqH	Is   A& &B BBr   )r   r   r   r   rB   namer   account_classr   oauth2_adapter_classsupports_token_authenticationr4   r9   rE   rM   rU   rg   r   __classcell__)r>   s   @r   r-   r-   6   sA    	BD!M.$(!

 r   r-   )r`   allauth.account.modelsr   allauth.socialaccount.adapterr   "allauth.socialaccount.app_settingsr   $allauth.socialaccount.providers.baser   r   ,allauth.socialaccount.providers.google.viewsr   -allauth.socialaccount.providers.oauth2.clientr	   /allauth.socialaccount.providers.oauth2.providerr
   r   r   r-   provider_classesr   r   r   <module>rv      sL     / 5 : L L E J 
"6O "6J4^ 4n ## r   