From d92f1eab475d8689bef5f60b20114e763f606012 Mon Sep 17 00:00:00 2001 From: Kum1ta Date: Wed, 7 Aug 2024 22:34:07 +0200 Subject: [PATCH] Site - Added cookie for keep token - Added username in login button if user is connected --- site/interface/site/login/createConnectDiv.js | 20 +++++++-- site/interface/site/login/main.js | 18 ++++++-- .../typeErrorInvalidPassword.js | 20 +++++++++ site/interface/site/typeResponse/typeLogin.js | 38 +++++++++++++--- site/interface/site/websocket.js | 45 ++++++++++++++++--- websocket-server/Class/User.py | 3 +- websocket-server/main.py | 7 ++- websocket-server/typeRequets/login.py | 36 ++++++++++----- 8 files changed, 152 insertions(+), 35 deletions(-) create mode 100644 site/interface/site/typeErrorResponse/typeErrorInvalidPassword.js diff --git a/site/interface/site/login/createConnectDiv.js b/site/interface/site/login/createConnectDiv.js index 59e986c..f5a6d88 100644 --- a/site/interface/site/login/createConnectDiv.js +++ b/site/interface/site/login/createConnectDiv.js @@ -3,14 +3,15 @@ /* ::: :::::::: */ /* createConnectDiv.js :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: edbernar +#+ +:+ +#+ */ +/* By: edbernar { sendRequest("login", {type: "byPass", mail: inputLogin.value, password: inputPass.value}); + waitForLogin().then((token) => { + usernameNode = document.createTextNode(userMeInfo.username); + loginButton.replaceChild(usernameNode, pLoginButton); + CN.new("Connected successfully", "Welcome " + userMeInfo.username, CN.defaultIcon.success); + document.getElementById("loginDiv").remove(); + document.getElementById("globalBg").remove(); + document.cookie = "token={" + token + "}; path=/; Secure; SameSite=Strict; max-age=3600"; + }); }); return (button); } diff --git a/site/interface/site/login/main.js b/site/interface/site/login/main.js index 695b230..e10cecf 100644 --- a/site/interface/site/login/main.js +++ b/site/interface/site/login/main.js @@ -3,22 +3,32 @@ /* ::: :::::::: */ /* main.js :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: edbernar +#+ +:+ +#+ */ +/* By: edbernar { + nodeText = document.createTextNode(userMeInfo.username); + + if (userMeInfo.id !== -1) + loginButton.replaceChild(nodeText, pLoginButton); + else + loginButton.addEventListener('click', showLoginDiv); + }); } function showLoginDiv() diff --git a/site/interface/site/typeErrorResponse/typeErrorInvalidPassword.js b/site/interface/site/typeErrorResponse/typeErrorInvalidPassword.js new file mode 100644 index 0000000..22b7e54 --- /dev/null +++ b/site/interface/site/typeErrorResponse/typeErrorInvalidPassword.js @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* typeErrorInvalidPassword.js :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: edbernar { + + if (loginAvailable) + resolve(); + else + loginResolve = resolve; + }); +} + function typeLogin(content) { - console.log("Welcome " + content.username + "\nYou're id is " + content.id); - userMeInfo.username = content.username; - userMeInfo.id = content.id; + if (content != null) + { + console.log("Welcome " + content.username + "\nYou're id is " + content.id); + userMeInfo.username = content.username; + userMeInfo.id = content.id; + } + loginAvailable = true; + if (loginResolve) + { + if (content != null) + loginResolve(content.token); + else + loginResolve(); + loginResolve = null; + loginAvailable = false; + } } -export { userMeInfo, typeLogin }; \ No newline at end of file +export { userMeInfo, typeLogin, waitForLogin }; \ No newline at end of file diff --git a/site/interface/site/websocket.js b/site/interface/site/websocket.js index ad3c3e4..56df964 100644 --- a/site/interface/site/websocket.js +++ b/site/interface/site/websocket.js @@ -3,22 +3,23 @@ /* ::: :::::::: */ /* websocket.js :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: edbernar +#+ +:+ +#+ */ +/* By: edbernar { + let token = getCookie("token"); + status = 1; console.log('Connected'); + if (token) + { + console.log("token :" + token); + sendRequest("login", {type: "byToken", token: token}); + } + else + typeLogin(null); }; socket.onmessage = (event) => { @@ -43,7 +69,13 @@ socket.onmessage = (event) => { return ; } if (response.code >= 9000 && response.code <= 9999) - console.warn(response); + { + try { + errorFunction[errorCode.indexOf(response.code)](); + } catch { + console.warn(response); + } + } else { try { @@ -68,6 +100,7 @@ function sendRequest(type, content) { coc = JSON.stringify(content); else coc = content; + socket.send(JSON.stringify({ type: type, // token: token, diff --git a/websocket-server/Class/User.py b/websocket-server/Class/User.py index 34b8e46..674fecc 100644 --- a/websocket-server/Class/User.py +++ b/websocket-server/Class/User.py @@ -6,7 +6,7 @@ # By: edbernar