Backend MySQL
Wed May 03 2023 19:43:05 GMT+0000 (Coordinated Universal Time)
Saved by @luisjdominguezp #nodejs
const express = require("express"); const mysql = require("mysql2"); const cors = require("cors"); const bodyParser = require("body-parser"); const cookieParser = require("cookie-parser"); const session = require("express-session"); const bcrypt = require('bcrypt'); const saltRound = 10; const app = express(); app.use(express.json()); app.use( cors({ origin: ["http://localhost:3000"], methods: ["GET", "POST"], credentials: true, }) ); app.use(cookieParser()); app.use(bodyParser.urlencoded({ extended: true })); app.use ( session ({ key: "userId", secret: "subscribe", resave: false, saveUninitialized: false, cookie: { expires: 60 * 60 * 24, }, }) ); const db = mysql.createConnection({ user: "username", host: "localhost", password: "PASSWORD-MYSQL", database: "usuarios", }); app.post('/register', (req, res)=> { const username = req.body.username; const password = req.body.password; bcrypt.hash(password,saltRound, (err, hash) => { if (err) { console.log(err) } let insertQuery = 'INSERT INTO ?? (??,??) VALUES (?,?)'; let query = mysql.format(insertQuery, ["usuarios", "username", "password", username, hash]); db.query(query, function(err, response,fields) { if (err) { console.log("Error: "); console.error(err); } // rows added console.log("Response: "); console.log(response); if (response.affectedRows==1){ res.send("OK"); } else { res.send("NO"); } }); }) }); app.get("/login", (req, res) => { if (req.session.user) { res.send({ loggedIn: true, user: req.session.user }); } else { res.send({ loggedIn: false }); } }); app.post('/login', (req, res) => { const username = req.body.username; const password = req.body.password; db.execute( "SELECT * FROM usuarios WHERE username = ?;", [username], (err, result)=> { if (err) { res.send({err: err}); } if (result.length > 0) { bcrypt.compare(password, result[0].password, (error, response) => { if (response) { req.session.user = result; console.log(req.session.user[0].username); if (req.session.user[0].username === username) { res.send("OK"); } else { res.send("NO"); } } else{ res.send({message: "Wrong username/ password comination!"}); } }); } else { res.send({ message: "User doesn't exists"}); } } ); }); app.listen(3001, () => { console.log("running server"); });
Comments