o
    |sg                     @   s  d dl Z d dlZd dlmZmZmZmZmZmZm	Z	 d dl
mZ d dlmZ e  e dZe dZeeeZ
ededd	Ze d
Ze dZe dZe dZeddd Zeddd Zeddd Zeddd Zeddd ZdS )    N)	Blueprintredirectrequestsessionurl_forrender_templateflash)create_client)load_dotenvSUPABASE_URLSUPABASE_KEYauthz/auth)
url_prefixDISCORD_CLIENT_IDDISCORD_CLIENT_SECRETDISCORD_REDIRECT_URIDISCORD_GUILD_IDz/loginc                   C   s   t dS )u   로그인 페이지z
login.html)r    r   r   */var/www/html/minecraft/app/routes/auth.pylogin   s   r   z/discord-loginc                  C   s   dt  dt d} t| S )u   Discord OAuth2 로그인z3https://discord.com/api/oauth2/authorize?client_id=z&redirect_uri=z<&response_type=code&scope=identify email guilds.members.read)r   r   r   )discord_auth_urlr   r   r   discord_login   s   r   z	/callbackc                  C   s
  t jd} | stdd ttdS d}ttd| td}dd	i}t	j
|||d
}|jdkr9tdd ttdS | d}d}dd| i}t	j||d}|jdkr`tdd ttdS | }|d }	|d }
|dd}|d }td}t}d| d|	 }dd| i}t	j||d}|jdkr|jr| nd}td| d ttdS tddd |	 }|jr|jd! d }n(td|	|
|d"d# }|jd$u st|jd!krtd%d ttdS d"}|	|
|||d&td"< td'd( ttd)S )*u   Discord OAuth2 콜백 처리codeu   Discord 인증 실패!danger
auth.loginz$https://discord.com/api/oauth2/tokenauthorization_code)	client_idclient_secret
grant_typer   redirect_urizContent-Typez!application/x-www-form-urlencoded)dataheaders   u   Discord 토큰 교환 실패!access_tokenz!https://discord.com/api/users/@meAuthorizationzBearer )r!   u-   Discord 사용자 정보 가져오기 실패!idusernameemail avatarDISCORD_BOT_TOKENzhttps://discord.com/api/guilds/z	/members/zBot zNo details availableu%   Discord 서버 멤버 확인 실패: usersrole
discord_idr   user)r-   r&   r'   r,   Nu=   유저 등록 실패! 서버에 문제가 발생했습니다.)r%   r&   r'   r)   r,   u   로그인 성공!successdashboard.dashboard)r   argsgetr   r   r   r   r   r   requestspoststatus_codejsonosgetenvr   contentsupabasetableselecteqexecuter    insertlenr   )r   	token_urlr    r!   token_responser#   user_urluser_response	user_datar-   r&   r'   r)   	bot_tokenguild_idguild_member_urlguild_headersguild_member_responseerror_detailsdb_responser,   insert_responser   r   r   callback&   sx   










rN   z/logoutc                   C   s   t   tdd ttdS )u   로그아웃u   로그아웃 되었습니다.infor   )r   clearr   r   r   r   r   r   r   logout|   s   
rQ   /c                   C   s    dt v r
ttdS ttdS )u   기본 경로 처리.r.   r0   r   )r   r   r   r   r   r   r   root   s   rS   )r7   r3   flaskr   r   r   r   r   r   r   r:   r	   dotenvr
   r8   r   r   __name__bpr   r   r   r   router   r   rN   rQ   rS   r   r   r   r   <module>   s0    $









U
