o
    h                     @   s
  d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d d	lmZm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mZmZ ddlmZ e  e!Z"G dd deZ#e$e#Z%e$e#Z&G dd de	Z'e'( Z)dS )    N)formsPermissionDenied)method_decorator)View)login_not_required)app_settings)get_adapter)complete_social_loginrender_authentication_error)SocialLogin)flows)GRAPH_API_URLGRAPH_API_VERSIONPROVIDER_ID)OAuth2AdapterOAuth2CallbackViewOAuth2LoginView   )FacebookConnectFormc                   @   sP   e Zd ZeZdeZej	
ei ZdZe
deZed ZdZdZdd Zd	S )
FacebookOAuth2Adapterz(https://www.facebook.com/{}/dialog/oauth,AUTHORIZE_URLz/oauth/access_tokenGET
expires_inc                 K   s   |   }t|||S )N)get_providerr   complete_login)selfrequestappaccess_tokenkwargsprovider r#   e/var/www/html/pos/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/facebook/views.pyr   0   s   z$FacebookOAuth2Adapter.complete_loginN)__name__
__module____qualname__r   provider_idformatr   provider_default_auth_urlr   	PROVIDERSgetsettingsscope_delimiterauthorize_urlr   access_token_urlaccess_token_methodexpires_in_keyr   r#   r#   r#   r$   r   #   s    r   c                       s4   e Zd Zee fddZdd Zdd Z  ZS )LoginByTokenViewc              
      sf   t  | _| j|t| _zt |W S  tjt	j
tfy2 } zt|| j|dW  Y d }~S d }~ww )N)	exception)r	   adapterr   r   r"   superdispatchrequestsRequestExceptionr   ValidationErrorr   r   )r   r   exc	__class__r#   r$   r7   :   s   zLoginByTokenView.dispatchc                 C   s   t d)N405r   )r   r   r#   r#   r$   r,   G   s   zLoginByTokenView.getc           
      C   s   t |j}| s| jd|jd }| j}||}|d}d}|dkr.|j	|dd}t
|||||}t||_t||}	|	S )Ninvalid_tokenr    	auth_type reauthenticateT)pop)r   POSTis_validr5   validation_errorcleaned_datar"   get_fb_login_optionsr,   	get_noncer   verify_tokenr   state_from_requeststater
   )
r   r   formr    r"   login_optionsr@   
auth_nonceloginretr#   r#   r$   postL   s    





zLoginByTokenView.post)	r%   r&   r'   r   r   r7   r,   rR   __classcell__r#   r#   r<   r$   r3   9   s
    r3   )*loggingr8   djangor   django.core.exceptionsr   django.utils.decoratorsr   django.views.genericr   #allauth.account.internal.decoratorsr   allauth.socialaccountr   allauth.socialaccount.adapterr	   allauth.socialaccount.helpersr
   r   allauth.socialaccount.modelsr   (allauth.socialaccount.providers.facebookr   2allauth.socialaccount.providers.facebook.constantsr   r   r   ,allauth.socialaccount.providers.oauth2.viewsr   r   r   r   	getLoggerr%   loggerr   adapter_viewoauth2_loginoauth2_callbackr3   as_viewlogin_by_tokenr#   r#   r#   r$   <module>   s*    


&