ó
    ´»)jé  ã                   ó¾   • S SK JrJrJrJr  S SKJr  S SK Jr  S SKJ	r	  S SK
JrJrJr  S SKJr  Sr\" SS	/S
9r\R%                  S5      \" 5       4S\S\4S jj5       rg)é    )Ú	APIRouterÚHTTPExceptionÚstatusÚResponse)ÚOAuth2PasswordRequestForm)ÚDepends)Ú	timedelta)Úverify_passwordÚcreate_access_tokenÚget_current_user)ÚUsersDAOé   z/usersu   Auth & ÐŸÐ¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ð¸)ÚprefixÚtagsz/loginÚresponseÚ	form_datac              ƒ   ó>  #   • [         R                  " UR                  S9I S h  v•N nU(       a  [        UR                  US   5      (       d  [        [        R                  SSS0S9e[        [        S9n[        SUS	   0US
9nU R                  SUSS9  USS.$  Nv7f)N)Ú	user_nameÚuser_passwordzIncorrect username or passwordzWWW-AuthenticateÚBearer)Ústatus_codeÚdetailÚheaders)ÚminutesÚsubr   )ÚdataÚexpires_deltaÚWorkTools_tokenT)ÚhttponlyÚbearer)Úaccess_tokenÚ
token_type)r   Úfind_one_or_noneÚusernamer
   Úpasswordr   r   ÚHTTP_401_UNAUTHORIZEDr	   ÚACCESS_TOKEN_EXPIRE_MINUTESr   Ú
set_cookie)r   r   ÚuserÚaccess_token_expiresr!   s        Ú3D:\OneDrive\Python\workToolsAPI\app\users\router.pyÚlogin_for_access_tokenr,      sª   é € ä×*Ò*°Y×5GÑ5GÑH×H€DÞ” y×'9Ñ'9¸4ÀÑ;P×QÑQÜÜ×4Ñ4Ø3Ø'¨Ð2ñ
ð 	
ô  )Ô1LÑMÐÜ*Ø˜˜kÑ*Ð+Ð;Oñ
ˆð 	×ÑÐ-¨|ÀdÐÑKØ ,¸HÑEÐEñ Iùs   ‚"B¤B¥A7BN)Úfastapir   r   r   r   Úfastapi.securityr   r   Údatetimer	   Úapp.users.authr
   r   r   Úapp.users.daor   r'   ÚrouterÚpostr,   © ó    r+   Ú<module>r6      sn   ðç >Ó >å 6Ý Ý ç QÑ QÝ "à Ð ñ 
ØØ
+Ð	,ñ
€ð ‡�ˆXÓÙ\cÓ\eñ F¨8ð FÐ@Yô Fó ñFr5   