From 5d81e5cfa5051d79c3627cd3301d7f1820d322b6 Mon Sep 17 00:00:00 2001 From: MaximeOLIVA <maxime.oliva@etu.univ-cotedazur.fr> Date: Thu, 9 Feb 2023 20:00:06 +0100 Subject: [PATCH] signin and signout --- .../__pycache__/server.cpython-310.pyc | Bin 4748 -> 4605 bytes Twidder (Lab3)/database.db | Bin 28672 -> 28672 bytes Twidder (Lab3)/server.py | 5 +- Twidder (Lab3)/static/client.js | 90 ++++++++++++------ 4 files changed, 63 insertions(+), 32 deletions(-) diff --git a/Twidder (Lab3)/__pycache__/server.cpython-310.pyc b/Twidder (Lab3)/__pycache__/server.cpython-310.pyc index 8b3cf9d8810871ddae71355c35d4efa59533d797..cf80ae791831a6db90d10bf6b22540a1d7baecea 100644 GIT binary patch delta 1460 zcmeBC{j1EI&&$ijz`($;+WKj-#YA3N#;A$fafzJij47<WOetI`+${{vj8QzPoLO8c zJSi}7-V{EtI4@Y7A1*GCA_x}e1B(l#2t&;gNf8B$^Ml33QdlOwig$z=rktVzmJ~@* zO;KxMh!RavPtj;$h!RWXNYTt@Dq5YQmC6|}p31pEVj%+~Lkd$c7;9>8Uc|`CxY>vK z9i#XyhL<N97#LPE6-hEMFl5eTgs><3vg!-o;!jB|NlZ#CPL0n<%_&GNn%u}LDu0Wm zD7Cnth?{|d0YdOFFfiO=FV0NQi!Ut@oV<lKnNel31e<~;GXnzyD+2?AGXn!daS{Uq zLkYtI#)S;E3@MB?3}p;O`YB8hdU7J0Tzv{l4Pz!_EmH~80@fPF8io``Nrr_?MY<(y zHB8NnDXeKA=d%Sfq_77wXma=!@q-*7faLaxj0_C7SWEJ=Q}c?XK$6lRLWY5XL6f}* z<dz~?kbois149%~VrfZ6YF<fZa$-s9Exz>ByveWGg!zhCK&qLGlt2pACh<s4mS*Qv z)dsmAWFiL>2O}FJ(|-{r7DhHE7ABVe0?a&&EKDp+MVgac+2e#YA;DP00n)DuB4j47 zXO|TO+sU4jpB|rITC$R{NNw_6b{TPdkh!4HV`JiA<YHujn4~*dfa6=V7D%%g!gnvv zAlR8xps@ssvB``K3`HQTpmt|Y1qpzC&57h|kROT^K!z$#PULjdfcOx^hle91Ho@@< za#WEi0|SHi<WrpLjHZ)6ai-XUodhx%VjW8n*i4YuicCOBKsY_MB)+sbwJ08xY~oXM z6EkyGG8L(TEtx!-OI<RVfq~&O9|Hpe8xsc;3nLd33nK?33saHR<jY(u*dXRlZseA5 z1bJMOtw<20RR}}~g9s52AqpbEZUzUkA&3k1J}Z)Yj3?jXmev5PQUfUf`&I+Q0(%ck zfc<E}z`#&AS)NCe(PFYEkFmHJNR2rt5ukW)@_rsMcCd$vEGKW^(c<m`sj~(V4wIkq zoQAo58?T~_K1dYdEOr!Uede{|Msn6<3qEyLP%@Y?IfYM`(SGtIz5{{aaBu{rQhu<N z@kOc0nFX1tc_p`4@=9}ZiX=cbfD<>^8Y2)F6fY>r94T@pFXmTg0|$ZH<O}>}jN2x& z3+OYtPc|2DHwFg}$VN>jaB8{5o{^fEl3G+;qysV*98zEc99$qn&rjYcAj+sc`M7{9 zqvT{>!DLr;1_p*3ptKCiJv@vej71=kTO9H6xrv#1@$n&=lDAmXauSQPi<m%$g7YFs zZ4o%}_=Ci}CvO#0HC6#JH9>?fhybO)A}bIJ6i-DCAQmXJirhggkYkF}CkqJ~$$?}< d7(m&RgOP)ggNcuYixG?^xfuC`C#MOi0RXe^9k&1g delta 1576 zcmeyX+@s2y&&$ijz`(#TQ}t<b|3qF{#-fSZafvMHj47<WOevfxTrCXEj8QzPoLO8c z+$lUzao!X@usAPRoF6VOkRk{c=L3ri!NrABM8M+wU~$nDv5BwZBVm>(r>KA>MZl7( za7}6{>R@rv6pa+k7KSLX6s;8P7KSMCRE`v#Y^I{^DY~hg@e-+=3nUjZFfybt1%t7s z-sUbwR>pdE{gl+4)RNR>koRDik%57MiGhK^nSp_!ScHLrp@d-p<3fg7h8l(<jub|y z3Cw;gnQk!@aWF72tYj+UXJBB+oXN<*pviQLKP9mwF)6V)H9jLXry#W`iX%BEH8C$f zB}tR<7E4iTaX}F`0|P@5H-i!bLlF-H1H&ygh%*F1HiAs#U}9lpVPs({65ia+^odaz zZ2rrWAYB4b3nx!u(U&g*>4@S^E=o--NsTWpPA$@8y2S#rzetFIfnoA{770eF$sDZ7 zjB1l}SQY9)-eQG$Eey$PDU3A?Wei1{DNGQ$glPeD4MPf}Bts2D3X>$mLZ)Jg6y{)t z5|(C$TE-Hl1*|oU5c!2nMd~$-DJ*HApk)naNMQ?R&}8>35(PO{4C+`==uBi}kYgy4 z2ML4xP^7@Xz@W)i#0(Np1QCLhZP+yVG?|K2K|#V=lAoQLH~Bq_m~v*G2`FGdhH)@) zFtRZ+{TE?kVPs<xVB}zAVPat_(we-BEsm#%4`hrwh)|fU%`Phl4juNK{Pg(z(vp>o zMVgZ%*=59CL56{XosEfukqaEoEKEgulY7{|MQejJ%OG6+@(hBVIfW4s*OM6;7>Ynv zX+k4^Do6nACr%_k>43~r0TF_e?{YW_fV@_u3F1S-XL2LAFsm5@14H0sH%@g%v&ng! zDKcP3fQ*7zz)}P@1>~6`)5-5RrP&|`Oy=iOm&{~fVE7F3HyaZu(Qq-bfWxH7da^&) z3O0yIlmBu_)Pp>w$yOu|vReW~NP-9{5FrgB!0rL1y&@wJ7wk1wB%47|5XG0CS`rUR zUh%29iJ3V?ETA}Kfy6b~Q6T@_Vl7L|DNThXa!49yXDG5{U|=YpJd<0K(Q@)(ZewwC zkUbU<6Oet#%Ok^RHCc;Ci+ch{g$;;snjFt_8s;4XUPT!LkSM~X?8q*ioXcy)4fYSj zO_MkAs<S#WFfh!Ue2-U`(Qz^l-+@4I(15ad6hGK6@kOc0nFX1tc_p`4@=9}ZisV2x zfKw{i8e<R_6e*hQ=<y4U8CiaHHjw{|G$(uUn=$U0+{mxb=s9^Kzq>Tp9UvPunZTNF zv1g<vrlb}X7wLjhfHcVaS7FJLiIInqg@x@e8>j%#nd~Uw%E&*tT_9OmgMoqJ9!M1^ z*m)R57>ht6w>aYCa}zW3;^RX!r6%(VigSbA69{sz?__;JRSRJdQw>CDfe1Yi0ZMa4 z)*u!rT8f-NEKm>?d4gCV_Y`SNZWlCCa$#U#5Mco2I}Sz;Mh+%E7A{6G=HO!FljLIL K6PSEmPz?aZ(=5RN diff --git a/Twidder (Lab3)/database.db b/Twidder (Lab3)/database.db index 65f3830459f6eb4eeac00519831c3d02ae1efa70..e206d1c7ac9e883e5e2080bc8f604578ce5cee97 100644 GIT binary patch delta 276 zcmZp8z}WDBae_2s`a~IL#`KK|E9E&)^Ka+B$G?!jd$XWICBF{;JqEFo)Z&ud#0rP> z+{DZrz2y8{HU<W4qLa7lYfetK7iMJL{6$|_fSZxui@%9~7ry}CwatPGNBGkDcQRP% z7bf{72UdDjghrYeW~Nq_hvb$!RhpUjC0dvU6dL-OxE30@V%W&Qz+k0cVG$6TSQ+jZ z8Def|XqxDqm|<=nRp^mw>F8qMm64cdloDbF(mC1Izs8usf|WT`-_O@Lv7#_CEg~(o p*frlX!_llNJkliDy(q<}s4B-R$)zkaGdHmUq{|_F^BaE=1pqo9TX_Hg delta 175 zcmZp8z}WDBae_2s<U|=~#>kBcE9Kem@t@}3&cAfCV8RT3ezn}h3WxOE#LOJM<osNg z$=mfcCqJ-P*kr&iz{$YBli!QKiC<*1q5?a=TAq4whF_AaXK;{zsG(&<P>F$|Uz(?9 zUXn$rcY1nwYMPg4YG&zVTmKqkOGf5UL#O28kgAgK9COD^vyeoWl#KA~@W8OFjNGtb cqok_*Oy5jnr{tuR^x~A_6hp(!Z~R3R00LJ!SpWb4 diff --git a/Twidder (Lab3)/server.py b/Twidder (Lab3)/server.py index ea20488..c126024 100644 --- a/Twidder (Lab3)/server.py +++ b/Twidder (Lab3)/server.py @@ -49,8 +49,11 @@ def sign_in(): return "", 401 else : token = generate_token() + value = { + "token" : token + } if database_helper.log_in(token, data['email']): - return token, 201 + return jsonify(value), 201 else: return "", 409 else: diff --git a/Twidder (Lab3)/static/client.js b/Twidder (Lab3)/static/client.js index c832ee3..cf894d6 100644 --- a/Twidder (Lab3)/static/client.js +++ b/Twidder (Lab3)/static/client.js @@ -116,29 +116,44 @@ function signUp(formData) { //---------------------------------------SIGN IN--------------------------------------- function signIn(formData) { - let username = formData.l_email.value; - let password = formData.l_password.value; + let user = { + email : formData.l_email.value, + password : formData.l_password.value + } + let messageDiv = document.getElementById("error"); - let tokens; + if(user.password.length > 5) { - if(password.length > 5) { - let serverAnswer = serverstub.signIn(username, password); - let success = serverAnswer.success; - let message = serverAnswer.message; - let token = serverAnswer.data; + let req = new XMLHttpRequest(); + req.open("POST", "/users/sign_in", true); + req.setRequestHeader("Content-type", "application/json;charset=UTF-8") + req.send(JSON.stringify(user)); - if(success) { - localStorage.setItem("token", token); - localStorage.setItem("email_username", username); - openTab('homePage'); - } else { - document.getElementById("error").style.display = "block"; - document.getElementById("error").innerHTML = message; + req.onreadystatechange = function(){ + if (req.readyState == 4){ + if (req.status == 201){ + let resp = JSON.parse(req.responseText); + let token = resp.token; + localStorage.setItem("token", token); + localStorage.setItem("email_username", user.email); + displayProfilView(); + openTab('homePage'); + } else if(req.status == 409){ + messageDiv.style.display = "block"; + messageDiv.innerHTML = "User already connected!"; + } else if(req.status == 400){ + messageDiv.style.display = "block"; + messageDiv.innerHTML = "Wrong data format!"; + } else if(req.status == 401){ + messageDiv.style.display = "block"; + messageDiv.innerHTML = "Wrong username or password!"; + } + } } } else { - document.getElementById("error").style.display = "block"; - document.getElementById("error").innerHTML = "Your password is too short."; + messageDiv.style.display = "block"; + messageDiv.innerHTML = "Your password is too short."; } } @@ -146,22 +161,35 @@ function signIn(formData) { //---------------------------------------SIGN OUT--------------------------------------- function signOut() { - let serverAnswer = serverstub.signOut(localStorage.getItem("token")); - let success = serverAnswer.success; - let message = serverAnswer.message; + let messageDiv = document.getElementById("error"); - if(success) { - displayWelcomeView(); - localStorage.removeItem("tab"); - localStorage.removeItem("token"); - localStorage.removeItem("browsed_email"); - document.getElementById("displayprofil").innerHTML = ""; - document.getElementById("displaywelcome").innerHTML = document.getElementById("welcomeview").innerHTML; - document.body.style.backgroundColor = "#0F98B7"; - } else { - document.getElementById("error").style.display = "block"; - document.getElementById("error").innerHTML = message; + let req = new XMLHttpRequest(); + req.open("POST", "/users/sign_out", true); + req.setRequestHeader("Content-type", "application/json;charset=UTF-8") + req.setRequestHeader("token", localStorage.getItem("token")) + req.send(null); + + req.onreadystatechange = function(){ + if (req.readyState == 4){ + if (req.status == 200){ + displayWelcomeView(); + localStorage.removeItem("tab"); + localStorage.removeItem("token"); + localStorage.removeItem("browsed_email"); + localStorage.removeItem("email_username"); + document.getElementById("displayprofil").innerHTML = ""; + document.getElementById("displaywelcome").innerHTML = document.getElementById("welcomeview").innerHTML; + document.body.style.backgroundColor = "#0F98B7"; + } else if(req.status == 401){ + messageDiv.style.display = "block"; + messageDiv.innerHTML = "User not connected"; + } else if(req.status == 400){ + messageDiv.style.display = "block"; + messageDiv.innerHTML = "Wrong data format!"; + } + } } + } //---------------------------------------MESSAGE MANAGEMENT--------------------------------------- -- GitLab