diff --git a/README.md b/README.md index 467274622b8da1c60d8e30837dc3c818aa63e0e6..6349b460be443676e76031611e5991162c4afaf2 100644 --- a/README.md +++ b/README.md @@ -18,9 +18,11 @@ Accédez au dossier contenant le serveur Node Installez les dépendances `npm install` +`npm install nodemon` Démarrez le serveur Node +`npm start` si vous avez installé nodemon sinon `node server.js` Vous pouvez ensuite visualiser le site en local sur un navigateur: **localhost:8080** diff --git a/backend/server.js b/backend/server.js index 614be0ca6d1f9f55519f278890de6e7e986e8acc..cabc09df11bc26e5a36bf8faf3dc7588f1cb6f42 100644 --- a/backend/server.js +++ b/backend/server.js @@ -98,16 +98,17 @@ app.get(config.rootApi + "pokemons",function (req,res){ app.post('/register', async (req, res) => { + console.log(req.body); try{ - let foundUser = users.find((data) => req.body.email === data.email); + let foundUser = users.find((data) => req.body.e === data.email); if (!foundUser) { - let hashPassword = await bcrypt.hash(req.body.password, 10); + let hashPassword = await bcrypt.hash(req.body.p, 10); let newUser = { - username: req.body.username, - email: req.body.email, + username: req.body.u, + email: req.body.e, password: hashPassword, cart:[] }; diff --git a/frontend/js/reg.js b/frontend/js/reg.js index 6b5d20f3c90a5cdbc9dae48546a7cc3282ffe1cb..4c5bda3ae2259422ecf0f484f7d7555886a1f64c 100644 --- a/frontend/js/reg.js +++ b/frontend/js/reg.js @@ -1,34 +1,60 @@ -document.getElementsByClassName("btn")[0].onclick = async function(){ - let email = document.getElementById("email").value; - let password = document.getElementById("password").value; - let username = document.getElementById("username").value; - if(email === "" || password === "" || username === ""){ - document.getElementsByClassName("text")[0].innerHTML = "Some fields aren't completed" - return 0; - } - let data = {email, password, username}; +document.getElementsByClassName("btn")[0].onclick = async function(){ - const response = await fetch("http://localhost:8081/register", { - method: "POST", - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(data) - }) - const json = await response.json(); + let email = document.getElementById("email"); + let password = document.getElementById("password"); + let username = document.getElementById("username"); - if(json.msg === "invalid"){ - document.getElementsByClassName("text")[0].innerHTML = "User already registered" + if(email.value === "" || password.value === "" || username.value === ""){ + document.getElementsByClassName("text")[0].innerHTML = "Some fields aren't filled" + return 0; } - else if(json.msg === "error"){ - document.getElementsByClassName("text")[0].innerHTML = "An error occured" + + + + if(!email.checkValidity()){ + document.getElementsByClassName("text")[0].innerHTML = "Email doesn't exist" + return 0; + }else if(!username.checkValidity()){ + document.getElementsByClassName("text")[0].innerHTML = "The username must be longer than 6 letters and lower than 12" + return 0; + }else if(!password.checkValidity()){ + document.getElementsByClassName("text")[0].innerHTML = "The password must be longer than 7 letters and have at least one Uppercase and digit" + return 0; } else{ - window.location.href = "login.html" + + let e = email.value; + let p = password.value; + let u = username.value; + + let data = {e, p, u} + + const response = await fetch("http://localhost:8081/register", { + method: "POST", + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(data) + }) + + const json = await response.json(); + + if(json.msg === "invalid"){ + document.getElementsByClassName("text")[0].innerHTML = "User already registered" + } + else if(json.msg === "error"){ + document.getElementsByClassName("text")[0].innerHTML = "An error occured" + } + else{ + window.location.href = "login.html" + } + } -} \ No newline at end of file + + +} diff --git a/frontend/registration.html b/frontend/registration.html index fee6e23aa326c06ec6ab915687c93e769e2c2a35..778bc7b640eb447513255092d93616f131cc7a8c 100644 --- a/frontend/registration.html +++ b/frontend/registration.html @@ -7,35 +7,38 @@ <link rel="stylesheet" href="css/register.css"> <title>Register</title> + + </head> <body> <main> <div class="form"> - <form action="/register" method="POST" class="login-box"> + <form action="#" method="#" class="login-box"> <h1>Sign up</h1> <label for="email"> Adresse mail </label> <div class="textbox"> <i class="fa fa-envelope" aria-hidden="true"></i> - <input type="email" id ="email" name="email" placeholder="JPSartre@gmail.com" required="@"> + <input type="email" id ="email" name="email" placeholder="JPSartre@gmail.com" required="@" pattern="[A-Za-z0-9\._-]+@([A-Za-z]+\.[A-Za-z]+)+"> </div> <label for="username"> username </label> <div class="textbox"> <i class="fa fa-user" aria-hidden="true"></i> - <input type="text" id ="username" name="username" placeholder="jpdu75" required=""> + <input type="text" id ="username" name="username" placeholder="jpdu75" required="" pattern="[A-Za-z0-9]{6,12}"> </div> <label for="street"> Password </label> <div class="textbox"> <i class="fa fa-lock" aria-hidden="true"></i> - <input type="password" id ="password" name="password" placeholder="password123" required=""> + <input type="password" id ="password" name="password" placeholder="password123" required="" pattern="^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{8,}$"> </div> + </form> <button class = "btn">Sign up</button>