diff --git a/API/src/database/database.sqlite b/API/src/database/database.sqlite index a74c5558ea90675f970a7f52c624bbbf3659a5af..0a475753574c807c184878342f72a292d21d2c57 100644 Binary files a/API/src/database/database.sqlite and b/API/src/database/database.sqlite differ diff --git a/API/src/express/Server.ts b/API/src/express/Server.ts index 329c81d2b1968ca91402a539a47c45fb39ef5d74..28f25a32f2dd78a0880012a7d188cea4ae4ed06c 100644 --- a/API/src/express/Server.ts +++ b/API/src/express/Server.ts @@ -64,7 +64,7 @@ class Server { this.io = new ServerIO(this.server); this.io.use((socket: SocketIoInfo, next) => { const token = socket.handshake.auth.token; - + console.log("token=", token) try { socket.user = jwt.verify(token, process.env.SECRET_KEY); next(); diff --git a/API/src/routes/router-gamer.ts b/API/src/routes/router-gamer.ts index 3fee65709f104312f4f570fbc3e3d1aa246c3275..fbe8984185cc05fb9293cbcd9f9105f745148a3d 100644 --- a/API/src/routes/router-gamer.ts +++ b/API/src/routes/router-gamer.ts @@ -10,11 +10,4 @@ router.get('/:username', checkExistingUser, verifyToken, (req: TokenRequest, res res.status(StatusCodes.OK).json({access_user: req.user}); }); - - - - - - - export default router; diff --git a/API/src/socket.io/ServerIO.ts b/API/src/socket.io/ServerIO.ts index fc987542ab9c77a96946933c59fce3c960d59e49..94347af0672cebbf5716356ade30e446cb3a8a30 100644 --- a/API/src/socket.io/ServerIO.ts +++ b/API/src/socket.io/ServerIO.ts @@ -30,6 +30,11 @@ class ServerIO extends IO.Server { this.on('connection', (socket: SocketIoInfo) => { + if (!socket.user) { + // Jeton invalide, ne pas poursuivre la connexion + console.log('Jeton invalide'); + return; + } logger.info(`Nouveau socket vers ${socket.client.conn.remoteAddress}`); console.log(`Socket info: ${socket.user.username} // ${socket.user.firstname} // ${socket.user.lastname}`); this.initializeGame(socket); @@ -104,6 +109,8 @@ class ServerIO extends IO.Server { }); socket.on("validate-question", async (responseSelected) => { + this.nbQuestion+=1; + console.log("nb question: ", this.nbQuestion); console.log("current question:", this.currentQuestion); if (responseSelected === this.currentQuestion.correctResponse) { // le joueur gagne 1 point @@ -116,7 +123,7 @@ class ServerIO extends IO.Server { } console.log("playerScore:", this.playersScore); let randomQuestion = await this.getRandomQuestion(); - if(this.nbQuestion<=10){ + if(this.nbQuestion<10){ this.emit("question", randomQuestion); }else{ const playersScoreFormatted = Object.keys(this.playersScore).reduce((formatted:any, key) => { @@ -125,7 +132,6 @@ class ServerIO extends IO.Server { }, {}); this.emit("game-finished", playersScoreFormatted); } - this.nbQuestion++; }); socket.on("restart-game", ()=>{ @@ -145,7 +151,7 @@ class ServerIO extends IO.Server { // Vérifiez si le joueur est dans le dictionnaire if (this.players[playerKey]) { - // Le joueur est connecté, retirez-le du dictionnaire + delete socket.user; delete this.players[playerKey]; delete this.playersReady[playerKey]; delete this.playersScore[playerKey]; @@ -189,7 +195,9 @@ class ServerIO extends IO.Server { this.currentQuestion = this.questions[randomIndex].dataValues; this.questions.splice(randomIndex, 1); // pour ne pas envoyer au frontend la reponse attendue - return {...this.currentQuestion}; + let randomQuestion={...this.currentQuestion}; + randomQuestion.correctResponse=-1; + return randomQuestion; } private testNumberOfReady() {