o
    h                     @   sh   d dl Z d dlmZ d dlmZ d dlmZmZmZ d dl	m
Z
 G dd deZeeZeeZdS )    N)RequestException)get_adapter)OAuth2AdapterOAuth2CallbackViewOAuth2LoginView)get_request_paramc                   @   s.   e Zd ZdZdZdZdZd
ddZdd	 ZdS )VKOAuth2Adaptervkzhttps://id.vk.com/oauth2/authzhttps://id.vk.com/authorizez"https://id.vk.com/oauth2/user_infoNc           	      C   sD   t | jd}t | jd}tt |d}|j|||d}d| _|S )Ncode	device_id)stater   )pkce_code_verifier
extra_dataT)r   requeststruuiduuid4get_access_tokendid_fetch_access_token)	selfr   appclientr   r
   r   r   data r   _/var/www/html/pos/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/vk/views.pyget_access_token_data   s   
z%VKOAuth2Adapter.get_access_token_datac                 K   s`   |j |jd}t  j| j|d}|  | }d|v s"d|vr&td| 	 
||d S )N)access_token	client_id)r   erroruserz5Could not get basic data for user being authenticated)tokenr   r   get_requests_sessionpostprofile_urlraise_for_statusjsonr   get_providersociallogin_from_response)r   r   r   r    kwargsreq_dataresp	resp_datar   r   r   complete_login#   s   zVKOAuth2Adapter.complete_login)N)	__name__
__module____qualname__provider_idaccess_token_urlauthorize_urlr#   r   r,   r   r   r   r   r      s    
r   )r   requestsr   allauth.socialaccount.adapterr   ,allauth.socialaccount.providers.oauth2.viewsr   r   r   allauth.utilsr   r   adapter_viewoauth2_loginoauth2_callbackr   r   r   r   <module>   s    
'