diff --git a/Twidder (Lab3)/__pycache__/server.cpython-310.pyc b/Twidder (Lab3)/__pycache__/server.cpython-310.pyc index 8b3cf9d8810871ddae71355c35d4efa59533d797..cf80ae791831a6db90d10bf6b22540a1d7baecea 100644 Binary files a/Twidder (Lab3)/__pycache__/server.cpython-310.pyc and b/Twidder (Lab3)/__pycache__/server.cpython-310.pyc differ diff --git a/Twidder (Lab3)/database.db b/Twidder (Lab3)/database.db index 65f3830459f6eb4eeac00519831c3d02ae1efa70..e206d1c7ac9e883e5e2080bc8f604578ce5cee97 100644 Binary files a/Twidder (Lab3)/database.db and b/Twidder (Lab3)/database.db differ diff --git a/Twidder (Lab3)/server.py b/Twidder (Lab3)/server.py index ea204889a36e3c85698a80843d18d25f9915740e..c126024c3480985f430df62b51f7c96827ae32e1 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 c832ee339d044f3d048a95484e6136068ec82eca..cf894d693b8fe1e3df9d009cbacfd9653979250a 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---------------------------------------