
    qh                     L    S r SSKJr  SSKJr   " S S\5      r " S S\5      rg)	zn
Twitch OAuth2 backend, docs at:
    https://python-social-auth.readthedocs.io/en/latest/backends/twitch.html
   )
BaseOAuth2)OpenIdConnectAuthc                   N   ^  \ rS rSrSrSrSrSrSS/rSr	SU 4S	 jjr
S
 rSrU =r$ )TwitchOpenIdConnect
   z,Twitch OpenID Connect authentication backendtwitchpreferred_usernamezhttps://id.twitch.tv/oauth2openiduser:read:emailzL{"id_token":{"email": null,"email_verified":null,"preferred_username":null}}c                 D   > [         TU ]  U5      nU R                  US'   U$ )Nclaims)superauth_paramsTWITCH_CLAIMS)selfstateparams	__class__s      M/var/www/html/env/lib/python3.13/site-packages/social_core/backends/twitch.pyr   TwitchOpenIdConnect.auth_params   s'    $U+--x    c                 v    U R                   (       d   S5       eU R                   S   U R                   S   SSSS.$ )NzNo id_token to parser	   email )usernamer   fullname
first_name	last_name)id_tokenr   responses     r   get_user_details$TwitchOpenIdConnect.get_user_details   sB    }}444} &:;]]7+
 	
r    )N)__name__
__module____qualname____firstlineno____doc__nameUSERNAME_KEYOIDC_ENDPOINTDEFAULT_SCOPEr   r   r"   __static_attributes____classcell__)r   s   @r   r   r   
   s7    6D'L1M01MV 

 

r   r   c                   D    \ rS rSrSrSrSrSrSrS/r	Sr
S	 rS
 rS rSrg)TwitchOAuth2(   z#Twitch OAuth authentication backendr   _idz%https://id.twitch.tv/oauth2/authorizez!https://id.twitch.tv/oauth2/tokenr   Fc                 $    UR                  S5      $ )z!
Use twitch user id as unique id
idget)r   detailsr!   s      r   get_user_idTwitchOAuth2.get_user_id2   s     ||D!!r   c                 L    UR                  S5      UR                  S5      SSS.$ )Nloginr   r   )r   r   r   r   r6   r    s     r   r"   TwitchOAuth2.get_user_details8   s*     W-\\'*	
 	
r   c                     U R                  5       u  pESU 3US.nSnU R                  XvS9nUR                  S5      (       a  US   S   $ 0 $ )NzBearer )Authorizationz	Client-Idz!https://api.twitch.tv/helix/users)headersdata    )get_key_and_secretget_jsonr7   )	r   access_tokenargskwargs	client_id_auth_headersurlrA   s	            r   	user_dataTwitchOAuth2.user_data@   s^    ..0	&|n5"
 2}}S}7"&((6"2"2tF|A::r   r$   N)r%   r&   r'   r(   r)   r*   ID_KEYAUTHORIZATION_URLACCESS_TOKEN_URLr-   REDIRECT_STATEr9   r"   rL   r.   r$   r   r   r1   r1   (   s7    -DF?:&'MN"

;r   r1   N)r)   oauthr   open_id_connectr   r   r1   r$   r   r   <module>rT      s+   
  .
+ 
<";: ";r   