From 4c6e8f2b1ac09733a25907742cacb317a339ec84 Mon Sep 17 00:00:00 2001 From: Kum1ta Date: Sat, 10 Aug 2024 16:09:12 +0200 Subject: [PATCH] Server/Site - 42 connection is working --- site/interface/listError.txt | 3 +- site/interface/site/login/connectedWith42.js | 6 +- site/interface/site/login/main.js | 11 ++-- .../typeErrorInvalidToken42.js | 23 +++++++ .../typeErrorUnknown42Account.js | 21 ++++++ site/interface/site/websocket.js | 13 ++-- websocket-server/typeRequets/createAccount.py | 5 +- websocket-server/typeRequets/login.py | 28 ++++---- .../typeRequets/login42/login42.py | 64 ++++++++++++------- 9 files changed, 122 insertions(+), 52 deletions(-) create mode 100644 site/interface/site/typeErrorResponse/typeErrorInvalidToken42.js create mode 100644 site/interface/site/typeErrorResponse/typeErrorUnknown42Account.js diff --git a/site/interface/listError.txt b/site/interface/listError.txt index 56af8b2..8fe5637 100644 --- a/site/interface/listError.txt +++ b/site/interface/listError.txt @@ -11,4 +11,5 @@ - 9007 : Invalid username or password - 9008 : User not found - 9009 : Invalid message sent -- 9010 : Invalid token 42 \ No newline at end of file +- 9010 : Invalid token 42 +- 9011 : Not user registered with this 42 account \ No newline at end of file diff --git a/site/interface/site/login/connectedWith42.js b/site/interface/site/login/connectedWith42.js index ded2a1c..b573991 100644 --- a/site/interface/site/login/connectedWith42.js +++ b/site/interface/site/login/connectedWith42.js @@ -6,10 +6,11 @@ /* By: edbernar +#+ +:+ +#+ */ +/* By: edbernar { + waitForLogin().then((token) => { nodeText = document.createTextNode(userMeInfo.username); + if (token !== undefined) + { + document.cookie = "token={" + token + "}; path=/; Secure; SameSite=Strict; max-age=3600"; + } if (userMeInfo.id !== -1) loginButton.replaceChild(nodeText, pLoginButton); else diff --git a/site/interface/site/typeErrorResponse/typeErrorInvalidToken42.js b/site/interface/site/typeErrorResponse/typeErrorInvalidToken42.js new file mode 100644 index 0000000..c6d1809 --- /dev/null +++ b/site/interface/site/typeErrorResponse/typeErrorInvalidToken42.js @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* typeErrorInvalidToken42.js :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: edbernar +#+ +:+ +#+ */ +/* By: edbernar { - let token = getCookie("token"); + let token = getCookie("token"); status = 1; console.log('Connected'); @@ -61,7 +63,6 @@ socket.onopen = () => { else { connectedWith42Func(); - typeLogin(null); } }; diff --git a/websocket-server/typeRequets/createAccount.py b/websocket-server/typeRequets/createAccount.py index a671744..1e328b0 100644 --- a/websocket-server/typeRequets/createAccount.py +++ b/websocket-server/typeRequets/createAccount.py @@ -3,10 +3,10 @@ # ::: :::::::: # # createAccount.py :+: :+: :+: # # +:+ +:+ +:+ # -# By: edbernar +#+ +:+ +#+ # +# By: edbernar +#+ +:+ +#+ # +# By: edbernar {"type" : "login", "content" : {"username": "". "token": "", "id": 0}} userList = [ - { - "username": "Nexalith", - "token": "IDSNCSDAd465sd13215421", - "mail": "eddy@ediwor.fr", - "password": "ABC123", - "id": 9999999, - 'id42': 123456 - }, { "username": "Eddy", "token": "54dsadw8f4a6w5f4a62s4f984fa62f4as65", "mail": "aaaaa", "password": "ed968e840d10d2d313a870bc131a4e2c311d7ad09bdf32b3418147221f51a6e2", # not hashed : aaaaa - "id": 2135421 + "id": 2135421, + "id42": -1 }, { "username": "Hugo", "token": "dsa4d6sa4sa1hfd1jhgk6g4k21bn65m4nb4", "mail": "bbbbb", "password": "bbbbb", - "id": 9892154 + "id": 9892154, + "id42": -1 }, { "username": "Mathis", "token": "8cb1qjlfndc12mn2l1mn654xzkkhad54cxz", "mail": "ccccc", "password": "6304fbfe2b22557c34c42a70056616786a733b3d09fb326308c813d6ab712ec0", # not hashed : ccccc - "id": 2371234 + "id": 2371234, + "id42": -1 }, { "username": "Tom", "token": "poiuygfvbdsv5c21vcxvcxhgbjqnkmds546", "mail": "ddddd", "password": "ddddd", - "id": 6423457 + "id": 6423457, + "id42": -1 } ] @@ -92,9 +88,9 @@ async def loginBy42(userClass, content): # |TOM| Requete pour récuperer les informations de l'utilisateur selon l'intra de la personne # et créer un token si celui-ci n'existe pas try: - main42login(content) + await main42login(userClass, content, userList) except Exception as e: - await userClass.sendError("Invalid 42 token", 9008, e) + await userClass.sendError("Invalid 42 token", 9010, e) async def login(userClass, content): # |TOM| Faire 3 types de requêtes: diff --git a/websocket-server/typeRequets/login42/login42.py b/websocket-server/typeRequets/login42/login42.py index 940b33c..16a9e70 100644 --- a/websocket-server/typeRequets/login42/login42.py +++ b/websocket-server/typeRequets/login42/login42.py @@ -6,7 +6,7 @@ # By: edbernar