+
    +&jB                     x    ^ RI HtHt ^ RIHt ^ RIHtHtHt ^ RI	H
t
 ^ RIHtHtHtHtHt ^ RIHt ^ RItR tR# )	    )requestjsonify)get_db)generate_tokenget_user_from_tokenbuild_location)error_response)PHONE_LENGTHCODE_LENGTHNICKNAME_MIN_LENGTHNICKNAME_MAX_LENGTHALLOWED_GENDERS)get_config_valueNc                 l   V P                  R R.R7      R 4       pV P                  RR.R7      R 4       pV P                  RR.R7      R 4       pV P                  RR	.R7      R
 4       pV P                  RR.R7      R 4       pV P                  RR.R7      V P                  RR.R7      R 4       4       pR# )z/api/auth/send-codePOST)methodsc                  8   \         P                  p V P                  R 4      pV'       d   \        V4      \        8w  d   \        R\         R24      # ^ RIHp V! V4      pVR,          '       d   \        RRRVR,          /4      # \        RRRVR,          /4      R3# )	phone   请输入正确的   位手机号)send_smssuccessTmessageF  )	r   jsongetlenr
   r	   	utils.smsr   r   )datar   r   results       A   E:\Work\靠谱人脉\软件相关\BangBang\backend\routes\auth.py	send_code'register_auth_routes.<locals>.send_code
   s    ||!E
l2!$6|nL"QRR&%)ItYy8IJKKIui	9JKLcQQ    z/api/auth/loginc                     \         P                  p V P                  R 4      pV P                  R4      pV'       d   \        V4      \        8w  d   \        R\         R24      # V'       d   \        V4      \        8w  d   \        R\         R24      # \        RR4      P                  4       R8H  pV'       d    ^ R	I	H
p V! W4      '       g   \        R
4      # \        4       pVP                  4       pVP                  RV34       VP                  4       pV'       gT   VP                  RWR,          R,           34       VP                  pVP                  RV34       VP                  4       pRp	MRp	\!        4       p
\"        P"                  P%                  4       \"        P&                  ! ^R7      ,           pVP                  RVR,          34       VP                  RVR,          WP)                  R4      34       VP+                  4        \-        V4      p\/        V4      VR&   VP1                  4        RT
RTRT	RVR,          '       * ;'       g    \        VR,          4      ^8  /p\3        V4      # )r   coder   r   u	   请输入u   位验证码use_real_smsfalsetrue)verify_sms_codeu   验证码错误或已过期z:SELECT * FROM users WHERE phone = ? AND deleted_at IS NULLz=INSERT INTO users (phone, nickname, enabled) VALUES (?, ?, 1):N   Nu   用户7SELECT * FROM users WHERE id = ? AND deleted_at IS NULLTF)days&DELETE FROM sessions WHERE user_id = ?idzBINSERT INTO sessions (user_id, token, expires_at) VALUES (?, ?, ?)z%Y-%m-%d %H:%M:%Slocationtokenuseris_new_userneed_profilenickname)r   r   r   r   r
   r	   r   r   lowerr   r*   r   cursorexecutefetchone	lastrowidr   datetimenow	timedeltastrftimecommitdictr   closer   )r   r   r&   r'   r*   connr7   r2   user_idr3   r1   
expires_atr    responses                 r!   login#register_auth_routes.<locals>.login   s   ||!xxE
l2!$6|nL"QRRs4yK/!Ik],"GHH'@FFHFR1"5//%&CDDxSV[U]^ NNZ]bjldmpxdx\yz&&GNNTW^V`a??$DKK &&**,x/A/Aq/II
?$t*O[Dz5*=*=>Q*RS	Ud+F3z

 UF;Z 00MMCZ8H4IA4M	
 x  r$   z/api/auth/logoutc                  ~   \         P                  P                  R 4      p V '       d   V P                  R4      '       g   \	        RR4      # V P                  R4      ^,          p\        4       pVP                  4       pVP                  RV34       VP                  4        VP                  4        \        RRRR	/4      # )
AuthorizationBearer 	   未登录   z$DELETE FROM sessions WHERE token = ?r   Tr   u   登出成功)r   headersr   
startswithr	   splitr   r7   r8   r?   rA   r   )auth_headerr1   rB   r7   s       r!   logout$register_auth_routes.<locals>.logoutP   s    oo))/:+"8"8"C"C!+s33!!#&q)x=xH

	4NCDDr$   z/api/auth/meGETc                      \         P                  P                  R 4      p V '       d   V P                  R4      '       g   \	        RR/4      R3# V P                  R4      ^,          p\        V4      pV'       g   \        RR4      # \	        V4      # )rI   rJ   errorrK   rL   rM   !   登录已过期，请重新登录)r   rN   r   rO   r   rP   r   r	   )rQ   r1   r2   s      r!   get_current_user.register_auth_routes.<locals>.get_current_user`   sx    oo))/:+"8"8"C"CG[12C77!!#&q)"5)!"EsKKt}r$   z/api/auth/delete-accountc                  
   \         P                  P                  R 4      p V '       d   V P                  R4      '       g   \	        RR/4      R3# V P                  R4      ^,          p\        V4      pV'       g   \	        RR/4      R3# \        4       pVP                  4       pVP                  RVR,          34       VP                  R	VR,          34       VP                  4        VP                  4        \	        R
RRR/4      # )rI   rJ   rV   rK   rL   rM   rW   z:UPDATE users SET deleted_at = datetime("now") WHERE id = ?r/   r.   r   Tr   u   账号注销成功)r   rN   r   rO   r   rP   r   r   r7   r8   r?   rA   )rQ   r1   r2   rB   r7   s        r!   delete_account,register_auth_routes.<locals>.delete_accountn   s    oo))/:+"8"8"C"CG[12C77!!#&q)"5)G%HIJCOOxSVZ[_V`Ubc?$t*O

	44HIJJr$   z	/api/userPUTz/api/auth/profilec                     \         P                  P                  R 4      p V '       d   V P                  R4      '       g   \	        RR/4      R3# V P                  R4      ^,          p\        V4      pV'       g   \	        RR/4      R3# \         P                  pV'       d   \        V\        4      '       g   \	        RR/4      R3# VP                  R	R
4      P                  4       pV'       g   \	        RR/4      R3# \        V4      \        8  g   \        V4      \        8  d   \	        RR\         R\         R2/4      R3# VP                  R4      pV'       d   V\        9  d   \	        RR/4      R3# \        4       pVP!                  4       pVP#                  RVVP                  R4      VVP                  R4      VP                  R4      VP                  R4      VP                  R4      VR,          34       VP%                  4        VP#                  RVR,          34       VP'                  4       pVP)                  4        \        V4      p	\+        V	4      V	R&   \	        V	4      # )rI   rJ   rV   rK   rL   rM   rW   u   请求数据格式错误r   r5    u   昵称不能为空u   昵称长度应在-u   个字符之间genderu   性别值不正确z
            UPDATE users
            SET nickname=?, avatar=?, gender=?, province=?, city=?, district=?, street=?
            WHERE id=?
        avatarprovincecitydistrictstreetr/   r,   r0   )r   rN   r   rO   r   rP   r   r   
isinstancer@   stripr   r   r   r   r   r7   r8   r?   r9   rA   r   )
rQ   r1   r2   r   r5   ra   rB   r7   updated_userr    s
             r!   update_profile,register_auth_routes.<locals>.update_profile   s    oo))/:+"8"8"C"CG[12C77!!#&q)"5)G%HIJCOO||:dD11G%?@A3FF88J+113G%9:;S@@x=..#h-BU2UG'9:M9NaPcOdds%tuvx{{{(#fO3G%9:;S@@x 
 HHXHHZ HHVHHZ HHXJ	
		 	PSWX\S]R_`(

l#+F3zvr$   N)route)appr"   rF   rR   rX   r[   rj   s   &      r!   register_auth_routesrn   	   s    YY$vhY7R 8R 	YY 6(Y33! 43!j 	YY!F8Y4E 5E 	YY~wY/ 0 	YY)F8Y<K =K* 	YY{UGY,YY"UGY43 5 -3r$   )flaskr   r   utils.databaser   
utils.authr   r   r   utils.helpersr	   utils.constantsr
   r   r   r   r   utils.configr   r;   rn    r$   r!   <module>rv      s&    " ! J J ( p p ) pr$   