From acc036cd0d1c7aad0fc577dd5a3eaf9d13fe9623 Mon Sep 17 00:00:00 2001 From: MaximeOLIVA <maxime.oliva@etu.univ-cotedazur.fr> Date: Thu, 9 Feb 2023 13:30:04 +0100 Subject: [PATCH] modif token lab2 --- Lab2/__pycache__/server.cpython-310.pyc | Bin 4420 -> 4719 bytes Lab2/database.db | Bin 28672 -> 28672 bytes Lab2/server.py | 69 +++++++++++++++++------- 3 files changed, 50 insertions(+), 19 deletions(-) diff --git a/Lab2/__pycache__/server.cpython-310.pyc b/Lab2/__pycache__/server.cpython-310.pyc index 3af99e8a6819cb2af0635cb1cace0ebe952112d3..9b004867109a8db67ebe33d1813dc745cabcd9d6 100644 GIT binary patch delta 1857 zcmX@2^j?K8pO=@5fq{YH`m-m=O_CG&WEhJ!YWp*4q-dpRw=hJBr*fp|WHS|QPti@~ zjF(8|Tp+oSfsrAFDHx13^)}C9T+M36%)r3l%)r1<tir&+P{Pp6P|HxmkiwYFTqID! zxPYmKVIgA?A6OG}FhdGUFoPzm-%G~HjqJi&%(q0-Q%mAY^0QO(;?s)qbK^5o6H`)) ziuf5A7^2v7^3&t<OG{QV7O79($gaxA#>BzM#mK_Q!o<Q<q%-*myM8?j0|Nsq%mFjN z4p_jrkfD~LgsGXKmNA8~hM|n1$SZ{jLf0^+FlRFtd6h7OoG8iA%$UNG%~Iq6<})Gj zSr)L?FfL>)aw}n3zy@N~GL^6_U<b3HdTW@onRJU>N>~<f)G*aBq%cV`EMzKjN?{FV zNMQ?RNMR3VNZ|-(NZ|}-NZ|@*(B$@;e2PO_UXy`=p-75>fng<65ibJ+!^<-WcIFhu z$v-&cg^T1E7#K7;i$FnJBoES{HCchvlY^y58N^YaoWm*WYQn(45C{r)kYWxdHbx0X z1x79~<Y5$m1`{Z#SeS}HYO4hG6O)tkOY=(f(^E_IQxZ!OlNl!e;}#G6tOE`>c+4>s zaf0Ft7JIdfHH<|fCCoL9&5XeeDa^qPD_Q)C!2SSPU8D+fEK89V$Z4R6D>9xe%jIF2 z$-uzynU8^ifsKiSiG`7iiG`7ak%g(ql7WGtN)p2@`ZlS#iJ3We$&8a1a7ol>z?{Tb z!<fRDjqD^)ycm@*E?@>Fty-oUrXqtHrW9sLh8m_6Mli_&CRxEG8<=F5WJuwd!&b{& z!cxQB%$UNN21><T!3-(f!3>%_$lhTDMapCaZj0<91CW=%-eX1bo)IW<@_`aAC=BDl z&MpEaL`{|=VUP}W5CMv*TdZY?Ii;yZoFD-(0m^Sh<_ruB<)D~TfQQcH{oK-QAn_`Z z$q%?iCad%DPUhs{6*mRxG{X#F4IUXri^&_=g(pYwh;vT>sj>nQ4wG+lOV@*)WS0!` z2`GPqFdG8{1IUfwoZ5juaGg*B*Sv&r0ZR=i7n^4?)H0_t)UwntxiG{E)UwvFf`gqE z6znN1bC_zGYd{&thIt_)BSWD=30n<IGh+%XD6DIkiXGqvIUr{cO-_{1pX|shBcliM z3nKK{kwbrS39l6!B%CL2;nfkgXJBBM2MSG4`2$I7li%{nGult)<x>Y25Fo#U{oMlg zH*x_1PF&1I4k?fV!XbqjTu?ZaFfU*MXLeBXva4YL`7?zjo2f_zoY$Fc7)qEIutLNa zG8WmCFfU+($Vh@pKTuh~T+3X;oLyvvtw7M^g8JDJl$Q9x@fBZ`nw(jXnVMH}izTl# zC#OgT6bPUU1WAX6ATB7wX|f|13?NZxuKUZUiYOvf`OWJ0fPzJhfq?;3Ja90wF*5yU zV`BQp#mvIU!^pwN$0!CWCcxz>sGulvXJBAR2Bj7l2Bjc)=qZ6RE=LJN79%LWYZ<~B zY8ZkU7{M@wsg@xU%-3Z0D*|T#O$H|h22CcgTW_&L3ije6ZIFAxSpiId^8={lxC(MA z4+8@O6C)2J3k%y{Hc(liHMxy{t>ZnA94PVfFp4l1f&6oeBR)PiF*7edK15UM7He8g zVsUm66Ub<AkqJ@@u0x9aL1NyMO9V_*K!qH*AOx2{;7nNL0FnkJAh6eqv?d=HFlTg` h{9iyrUYv`OkC%&)PXbEIaxrp9aBy<4vVk1<4*+>EZ1VsB delta 1539 zcmaE_azu$QpO=@5fq{XcclV>@Ht~skGK^Upwfz|tQaMtzvYCoDr)Z~g#*3$NE|6Hr zz{rro6b#0iI-3_Uu4c_)VPIfzW?*0_)?#2_C}CK@xR9ZiA%(Gqp^TwOxP)l|a}7fZ zqa?#Z#v(zmR_0)a6qaBHO;*1mbp{58A|4Q-3L@kf7#K8JikLxcc@V+Rz`zj2o|B&* zpI=&{$ylU3`2f2r9|sc$BOfCRBMTD?Q<3K6&+Pj3AT6vgcg(|dhi?iK*gd`}%n-VS zsfHniNs^(NF@+_YrN|r1XGY>PFJOVY+p~mu0V|AG%UHs^fDO(An`0r#P{WkXRODX5 zynwxiv4$aqS(0HPQ;};5YcN9!TQEZkdoV)^M=(PQCxoxb1@Zjka~#sbQVa|XE18OT z85kH|o&kAVj$twfr#z=72Q(-qTXA|aGZ!gO?&g&BHeg_22m}SU3<CoL2a^P&0wW(7 z@-PZO0|gW?EKEfpl~t1ZiOI?NrFkX#>8U09DTyVC`Zgu`*{OMU$&8cVa!MG2i~+@3 z4Z}jlTE-g2A|6m!)G#)KqM0$6VI`Aa5h!*vnTtTtQKUaPl*^+&gMoqJGY10$0~Zqu zBNrnJQ;{hH14ES}PTTZtQgahCbL^6tKq(E1K}m-l7HwhBXahN<NV9}t0aFd*LdIIA z8m1!k8YWN@s$l{}Sq)PPvpFchQ&_+xE0|=HWJqD3!&b{&!d%1L%$UNF268_rxVeHE zG`anX7(u~1IfL6)3L4g#Qy3W-AYNmEcujBeUT$eNaH15Re2-h6*O-BUp%4_-peULw zz$48D5~-4zY{(<Rg%Xb921SOTs51g3VOU5pFfiN_OHVC{FD*_jiqB0gE>28OjR%KA zk;&xAJX!*+AU$Rv!VVOCDj<XFVFqIjGBySV22ikpb6gp6kXfPxnO+IQ0%lME7U^X& z)H0_t)UwntxiG{E)UwvFf&-Hk6qqT@bC_zGYgiVr)G#k(WMn85FVSbMVF6_ePyp62 z6`R8iGDl9$njDZIEi#`xk5@)q8{`LT5CKjrY_I^m#%l!&P%%CoURwqRhCWb$g0lML zP(FD^+sUPT>frnf@)_7yc~D;=l_RFm{A&u$zoy9L3OLmomoR~IEGXkK78#Z>EntOZ zL`Y6w$P7+O`k=B0*(0EA>7~gD$&W?$pc02497XX(smYlInW=dtMW8%V#0T;n*o(R# z7RU#hY|tDE5`gB8HhxubUfs-Zro9~GRRwT9<zQrEWcts>#PpAknT3&$Q4Ew<!9^G- zw-&ifUL~-Waqr{^L0M(VTdZk0iN)DPpsWJ102JepAoT`W<vw|apozRDhzZK%;JjA^ yN}5HWWK;wS<sz5K9|X-AohEAtX~>FkG4gS6G4csRX$dYy4p9zPHbx#smVW>a6*PMQ diff --git a/Lab2/database.db b/Lab2/database.db index 9861d56e4ec1021e1661cf9fb09ba4bf5562a22c..6ec2df962c98e8c989c5014c632fc9621491b4d7 100644 GIT binary patch delta 406 zcmZp8z}WDBae_3X-$WT_RzC*4aIcLi^Y{fs7+Cq{vh(}$xAV>AyTN~Wv!Fm1A2+`x zGl#gOsHmi-;$%5_b(Xxcg2c&}<eXR-7#PeaOUSS0)Mw?8<QJ6`R-ZgUUX(RAvBDvJ z@&<VkF$OT;Vqjok;y=y6e~<q(|5E;?n*|kS@C&PfmE|U8=IABo=Yq@<nY>%ylaH0Z zmx2En|2_WA{PX#HHw!9M^9u<wt23e~XPrFXK9z@wzlni=Cw~*a2*1c?K?Qbx^E~z9 z48J5-&)^{cP(#azpb`T^zcf$Jyd;ZK@AUNW)HE;8)XY*8qZk+%EGGN;Z<FES<!0dD z&R@)L!uOVMJ6|K8H=ii)S>8%sCtmK&f&#C3giLu@8H_cxlM@pY6N^)dQw$9!JI0GC mW~Aoiq!tyW7Ue6Hq!yQ$a${4)kEUvKWo(rYFAq3?pacMy^KJ70 delta 237 zcmZp8z}WDBae_3X>qHr6R#yhSXp@a8^Z5A=GO+O7VCDDaZ|4``yRlhNp@)x)-<QFL zUsO`qP<8S|dC|!^^1>`BX(?%wFUdKvm@;#SPnM8h&B0&{Rw4{lA}DKUWXymBxEL51 znEAIe@ZaM<&A)xKV8Tj%7GY*>#>u<&J$YF8=QHph<G;thnScIfL4|()$@A?~xtRIA z82EScH}QLI7F4j|XE9@D4xQ}hzfFRRw~~Q>JAX013Ex}3?R<@V-h86GXL&0(D+<K& PZmx{265<6}2e%ynAc8m5 diff --git a/Lab2/server.py b/Lab2/server.py index e693669..98ccdfd 100644 --- a/Lab2/server.py +++ b/Lab2/server.py @@ -68,9 +68,9 @@ def sign_in(): @app.route("/users/sign_out", methods = ['POST']) def sign_out(): - data = request.get_json() - if('token' in data): - if database_helper.log_out(data['token']): + token = get_token_from_header() + if(token != 1): + if database_helper.log_out(token): return "", 200 else: return "", 401 @@ -81,11 +81,12 @@ def sign_out(): @app.route("/account/change_password", methods = ['PUT']) def change_password(): data = request.get_json() - if('token' in data and 'oldPassword' in data and 'newPassword' in data): + token = get_token_from_header() + if('oldPassword' in data and 'newPassword' in data and token != 1): if(len(data['oldPassword']) > 5 and len(data['newPassword']) > 5): - if database_helper.is_online(data['token']): - email = database_helper.tokenToEmail(data['token']) - password = database_helper.tokenToPassword(data['token']) + if database_helper.is_online(token): + email = database_helper.tokenToEmail(token) + password = database_helper.tokenToPassword(token) if(data['oldPassword'] == password): if database_helper.change_password(email, data['newPassword']): return "", 204 @@ -101,17 +102,27 @@ def change_password(): return "", 400 -@app.route("/account/get/data/<token>", methods = ['GET']) -def get_user_data_token(token): +@app.route("/account/get/data", methods = ['GET']) +def get_user_data_token(): + token = get_token_from_header() + + if token == 1: + return "", 400 + email = database_helper.tokenToEmail(token) if email: - return get_user_data_email(token, email) + return get_user_data_email(email) else: return "", 401 -@app.route("/account/get/data/<token>/<email>", methods = ['GET']) -def get_user_data_email(token, email): +@app.route("/account/get/data/<email>", methods = ['GET']) +def get_user_data_email(email): + token = get_token_from_header() + + if token == 1: + return "", 400 + if database_helper.is_online(token): data = database_helper.get_data_email(email) if data: @@ -130,17 +141,27 @@ def get_user_data_email(token, email): return "", 401 -@app.route("/account/get/message/<token>", methods = ['GET']) -def get_user_message_token(token): +@app.route("/account/get/message", methods = ['GET']) +def get_user_message_token(): + token = get_token_from_header() + + if token == 1: + return "", 400 + email = database_helper.tokenToEmail(token) if email: - return get_user_message_email(token, email) + return get_user_message_email(email) else: return "", 401 -@app.route("/account/get/message/<token>/<email>", methods = ['GET']) -def get_user_message_email(token, email): +@app.route("/account/get/message/<email>", methods = ['GET']) +def get_user_message_email(email): + token = get_token_from_header() + + if token == 1: + return "", 400 + if database_helper.is_online(token): data = database_helper.get_messages_email(email) #this user has message(s) @@ -167,10 +188,11 @@ def get_user_message_email(token, email): @app.route("/account/post_message", methods = ['POST']) def post_message(): data = request.get_json() - if('token' in data + token = get_token_from_header() + if(token != 1 and 'message' in data and 'email_recipient' in data): - email_sender = database_helper.tokenToEmail(data['token']) + email_sender = database_helper.tokenToEmail(token) if email_sender: if(data['email_recipient'] == "null"): data['email_recipient'] = email_sender @@ -188,6 +210,15 @@ def post_message(): return "", 400 +def get_token_from_header(): + try: + token = request.headers['token'] + except: + token = 1 + + return token + + def generate_token(): characters = string.ascii_letters + string.digits return ''.join(random.choices(characters, k=36)) -- GitLab