Ë
    ûûàgX  ã                   ó€   — d dl Z d dlmZmZmZ d dlmZ d dlZd dlm	Z	 d dl
mZmZ d„ Z G d„ d«      Z G d	„ d
e«      Zy)é    N)Ú	parse_qslÚquoteÚ	urlencode)ÚImproperlyConfigured)Úget_adapter)ÚOAuth2ClientÚOAuth2Errorc                  ór   — t        j                  | i |¤Ž}t        |t        «      r|j	                  d«      }|S )Nzutf-8)ÚjwtÚencodeÚ
isinstanceÚbytesÚdecode)ÚargsÚkwargsÚresps      új/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/apple/client.pyÚ
jwt_encoder      s2   € Ü�:‰:�tÐ&˜vÑ&€DÜ�$œÔà�{‰{˜7Ó#ˆØ€Kó    c                   ó   — e Zd ZdZdZy)ÚScopeÚemailÚnameN)Ú__name__Ú
__module__Ú__qualname__ÚEMAILÚNAME© r   r   r   r      s   „ Ø€EØ�Dr   r   c                   ó*   — e Zd ZdZd„ Zd„ Zdd„Zd„ Zy)ÚAppleOAuth2Clientz 
    Custom client because `Sign In With Apple`:
        * requires `response_mode` field in redirect_url
        * requires special `client_secret` as JWT
    c                 óž  — t        t        j                  «       «      }t        | j                  «      j	                  | j                  d«      }|j
                  st        d«      ‚|j                  j                  d«      }|st        d«      ‚|j
                  d| j                  «       ||dz   dœ}| j                  dd	œ}t        ||d|¬
«      }|S )z6Create a JWT signed with an apple provided private keyÚapplezApple 'key' missingÚcertificate_keyzApple 'certificate_key' missingzhttps://appleid.apple.comi  )ÚissÚaudÚsubÚiatÚexpÚES256)ÚkidÚalg)ÚpayloadÚkeyÚ	algorithmÚheaders)ÚintÚtimer   ÚrequestÚget_appr.   r   ÚsettingsÚgetÚget_client_idÚconsumer_secretr   )ÚselfÚnowÚappr$   Úclaimsr0   Úclient_secrets          r   Úgenerate_client_secretz(AppleOAuth2Client.generate_client_secret#   s¼   € ä”$—)‘)“+ÓˆÜ˜$Ÿ,™,Ó'×/Ñ/°·±¸gÓFˆØ�wŠwÜ&Ð'<Ó=Ð=ØŸ,™,×*Ñ*Ð+<Ó=ˆÙÜ&Ð'HÓIÐIà—7‘7Ø.Ø×%Ñ%Ó'ØØ˜‘=ñ
ˆð ×.Ñ.°wÑ?ˆÜ"Ø ¸7ÈGô
ˆð Ðr   c                 ó>   — | j                   j                  d«      d   S )zCWe support multiple client_ids, but use the first one for api callsú,r   )Úconsumer_keyÚsplit)r9   s    r   r7   zAppleOAuth2Client.get_client_id9   s   € à× Ñ ×&Ñ& sÓ+¨AÑ.Ð.r   Nc                 ó  — | j                   }| j                  «       }| j                  «       |d| j                  |dœ}|r||d<   | j	                  |«       t        «       j                  «       j                  | j                  ||| j                  ¬«      }d }|j                  dv r	 |j                  «       }|rd|vrt!        d|j"                  z  «      ‚|S # t        $ r! t        t        |j                  «      «      }Y ŒIw xY w)NÚauthorization_code)Ú	client_idÚcodeÚ
grant_typeÚredirect_urir=   Úcode_verifier)Údatar0   )éÈ   éÉ   Úaccess_tokenz!Error retrieving access token: %s)Úaccess_token_urlr>   r7   Úcallback_urlÚ_strip_empty_keysr   Úget_requests_sessionr3   Úaccess_token_methodr0   Ústatus_codeÚjsonÚ
ValueErrorÚdictr   Útextr	   Úcontent)r9   rF   Úpkce_code_verifierÚurlr=   rJ   r   rM   s           r   Úget_access_tokenz"AppleOAuth2Client.get_access_token=   sü   € Ø×#Ñ#ˆØ×3Ñ3Ó5ˆà×+Ñ+Ó-ØØ.Ø ×-Ñ-Ø*ñ
ˆñ Ø$6ˆD�Ñ!Ø×Ñ˜tÔ$ä‹Mß!Ñ!Ó#ß‰W�T×-Ñ-¨s¸ÀtÇ|Á|ˆWÓTð 	ð
 ˆØ×Ñ˜zÑ)ð:Ø#Ÿy™y›{�ñ ˜~°\ÑAÜÐAÀDÇLÁLÑPÓQÐQØÐøô	 ò :Ü#¤I¨d¯i©iÓ$8Ó9’ð:ús   Â%C Ã'C?Ã>C?c                 ó  — | j                   j                  t        |«      «      }| j                  «       | j                  d|ddœ}| j
                  r| j
                  |d<   |j                  |«       |›dt        |t        ¬«      ›�S )NÚ	form_postzcode id_token)rE   rH   Úresponse_modeÚscopeÚresponse_typeÚstateú?)Ú	quote_via)	Úscope_delimiterÚjoinÚsetr7   rO   ra   Úupdater   r   )r9   Úauthorization_urlr_   Úextra_paramsÚparamss        r   Úget_redirect_urlz"AppleOAuth2Client.get_redirect_urlY   su   € Ø×$Ñ$×)Ñ)¬#¨e«*Ó5ˆà×+Ñ+Ó-Ø ×-Ñ-Ø(ØØ,ñ
ˆð �:Š:Ø"Ÿj™jˆF�7‰OØ�‰�lÔ#Ú+¬Y°vÌÕ-OÐPÐPr   )N)r   r   r   Ú__doc__r>   r7   r[   rk   r   r   r   r!   r!      s   „ ñòò,/óó8Qr   r!   )r2   Úurllib.parser   r   r   Údjango.core.exceptionsr   r   Úallauth.socialaccount.adapterr   Ú-allauth.socialaccount.providers.oauth2.clientr   r	   r   r   r!   r   r   r   ú<module>rq      s;   ðÛ ß 4Ñ 4å 7ã 
å 5÷ò÷ñ ô
IQ˜õ IQr   