diff --git a/package-lock.json b/package-lock.json index e74b385..deb93b9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "auth", + "name": "express-auth", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/src/auth/auth.handler.ts b/src/auth/auth.handler.ts index 567708d..e432a47 100644 --- a/src/auth/auth.handler.ts +++ b/src/auth/auth.handler.ts @@ -1,17 +1,23 @@ import { Router } from "express"; import { TUser, users } from "../data"; import { findUserByEmailAndPassword } from "../users/user.service"; +import bcrypt from "bcrypt"; + const router = Router() +const saltRounds= 10; -router.post('/register', (req, res) => { +router.post('/register', async (req, res) => { const user: TUser = req.body; - // user.password = crypted + const crypted = await bcrypt.hash(user.password, saltRounds) + user.password = crypted users.push(user) res.json({ status: 'ok', data: user }) }) + + router.post('/login', (req, res) => { const user: TUser = req.body; diff --git a/src/auth/note b/src/auth/note new file mode 100644 index 0000000..03ef573 --- /dev/null +++ b/src/auth/note @@ -0,0 +1,46 @@ +// const express = require("express"); +// const bcrypt = require("bcrypt"); + +// const app = express(); +// app.use(express.json()); // Middleware pour lire le JSON + +// const saltRounds = 10; // Plus il est élevé, plus le hash est sécurisé mais lent + +// // Simulation d'une base de données (en vrai, ce serait MongoDB ou PostgreSQL) +// let users = []; + +app.post("/register", async (req, res) => { + + const { username, password } = req.body; + + // Hachage du mot de passe + const hashedPassword = await bcrypt.hash(password, saltRounds); + + // Sauvegarde de l'utilisateur + users.push({ username, password: hashedPassword }); + + res.status(201).json({ message: "Utilisateur enregistré !" }); + +}); + +app.post("/login", async (req, res) => { + try { + const { username, password } = req.body; + const user = users.find(u => u.username === username); + + if (!user) return res.status(400).json({ error: "Utilisateur non trouvé" }); + + // Vérification du mot de passe + const isMatch = await bcrypt.compare(password, user.password); + + if (isMatch) { + res.json({ message: "Connexion réussie ✅" }); + } else { + res.status(400).json({ error: "Mot de passe incorrect ❌" }); + } + } catch (error) { + res.status(500).json({ error: "Erreur lors de la connexion" }); + } +}); + +app.listen(3000, () => console.log("Serveur démarré sur http://localhost:3000"));