From 515041a6ff8b89e2fe9bee64cd3d468e96dc6c26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sascha=20K=C3=BChl?= Date: Wed, 12 Mar 2025 15:49:10 +0100 Subject: [PATCH] fixed rest api signup and signin --- backend/controllers/auth.controller.js | 18 +++++++++--------- backend/database/example-db.sqlite | Bin 45056 -> 0 bytes backend/index.js | 9 +++++---- backend/models/user.model.js | 13 ++++--------- 4 files changed, 18 insertions(+), 22 deletions(-) delete mode 100644 backend/database/example-db.sqlite diff --git a/backend/controllers/auth.controller.js b/backend/controllers/auth.controller.js index de7bff7..625f72e 100644 --- a/backend/controllers/auth.controller.js +++ b/backend/controllers/auth.controller.js @@ -6,7 +6,6 @@ const Role = db.role; const Op = db.Sequelize.Op; const jwt = require("jsonwebtoken"); -const bcrypt = require("bcryptjs"); exports.signup = (req, res) => { // Save User to Database @@ -14,8 +13,8 @@ exports.signup = (req, res) => { firstName: req.body.firstName, lastName: req.body.lastName, email: req.body.email, - dateOfBirth: req.body.dateOfBirth, - password: bcrypt.hashSync(req.body.password, 8) + dateOfBirth: new Date(req.body.dateOfBirth), + password: req.body.password }) .then(user => { if (req.body.roles) { @@ -45,7 +44,7 @@ exports.signup = (req, res) => { exports.signin = (req, res) => { User.findOne({ where: { - username: req.body.username + email: req.body.email } }) .then(user => { @@ -53,10 +52,11 @@ exports.signin = (req, res) => { return res.status(404).send({ message: "User Not found." }); } - const passwordIsValid = bcrypt.compareSync( - req.body.password, - user.password - ); + const passwordIsValid = user.validPassword(req.body.password); + // const passwordIsValid = bcrypt.compareSync( + // req.body.password, + // user.password + // ); if (!passwordIsValid) { return res.status(401).send({ @@ -90,4 +90,4 @@ exports.signin = (req, res) => { .catch(err => { res.status(500).send({ message: err.message }); }); -}; \ No newline at end of file +}; diff --git a/backend/database/example-db.sqlite b/backend/database/example-db.sqlite deleted file mode 100644 index 8519508b92bd06f0342aaea8ca3bf67a2a3cf188..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45056 zcmeI*&u`mg7zc1WPMoG)V_+IlDP3J5#Gx?A#@5V1cW z4t^yJ`X39ymEqTwACxyvyc7IoFc&!Ke?0JOw;iz^0uX=z1R!w41-4T|{?NpPxMRA; zTG6aIroC!cil(!d8cbxgcurGu@wue7Jx}Gw$Hkp>UVfR%XISxOqOG)=Z*I@4XY%W| zX}D$~?&j5NRAWw0X=-{gr>2*a$#ZJHRxR|(W?|`tysD>j+6^t!+*8eH*R_n6PH0&* z&x2vdvI_aIx|mk4X-SQOPsFo{_%)4fSzclX-`&EFON}_NV%8Ana1}3Q^i({vqAqAF z6i_4lz2k+$u@iDg8y5wuTrlrDcZ&4Q&Z<#!EByUxlWsNEOb%_oKj;sgJuB`^bN{(o zu~;?BS<`W>O4-@>HqhF0YJOjCqcKg-)^Ov?xkWuqyQj2tjzTu967?H(-}C&GyJ@*y z^ZM)as^zY4w)akJZ+GjItX3aX&v$qD;ZndK8XXlsyT<{S_yL^8%RoC=W9wm{+y_a`jy+m`>+ek1pLR`uR2N;ahuM z%8pa-Ri2VNbS%#}Oy8D`67}uvcqVZ(o;fph{(N}v8nm3&Z!K%=Oj%pA&AXQ2()rk> zFqP`#tO##k_4-4hkhrtjyae;huj6TNWb4WCLMQo#Wjk)Vdm}0CqH$0Ob_rkHn6qqm zv-4HnEE!g@i;UW2tQwAUuVT~XzN2@agiDglE}|up2bmwAQ_ ziF34PSb0sD;+-;fP^ZX4GXI`odO!}{nCN!#-#ZspV|!`8@{cgU_TGxhd<<+~;fLd& zdi;y8E!?(`!xtI@J;r#S=3$>4x*Y1(UOrgsA9RjH4dksHri6F+dqKGy{3Cdq5?CMr z0SG_<0uX=z1Rwwb2teQ^7T6m0287V4ekG*qwoxuT_^7g3b}HrA?1kycSadQvt4>W{ zibm;QBpQvXXL*vBj5LZ~ZOo5F)+;5RF%_LUKN+27`^IK3vE463W@g@N?AtqcOOYs^ zF+EQ4ESUwnk}_=9Dx06gW-rDjW3kDpnN9&!SqvQJQUH0ewiZ5 zGNFY^ZNs=9o1MNe8KrnS0y(T;%W&@ok5ZKTECFLhU`CIvuUa&v_ z0uX=z1Rwwb2tWV=5P$##AaJAvf|4{LwmjDm@JJz%KLg+mh?L~dGD!9N|I>o zAE^c+SO`D>0uX=z1Rwwb2tWV=5P-mcB#@GP!rQuT6iQava$MVRE1iFx{$kI^B6f4< zJw9Pv*GrXx$*QvZsY?@m!YN&^(cjGJry6$u?;rk6P`*~yl~C|$@YCSC^cD*QAOHaf zKmY;|fB*y_009UbIe`VgER39_r{0S-`>vTy-tK(6_+k(CFUYbm`YKg+&ory1o&BJ% z%6#?65;fN~?Zk4fpURS6Ss0_p5}QW(L$g**-0Y{ed5J<}?JQb!ubxfzQ&-9(3*#&@ z=D%hXi;1~@s!NLXhF+(?6Ul13-dAnx`G3FiL{NUDr~kiG{!)Hco+#fOxj~MAApijg zKmY;|fB*y_009U<00PHGU{D$n>$5oiA!$@>%)!WPbA1ZMcS0HycPBu+_2O*)LK>FF zsYqk`!80U{1$Ji-*w6pzKmEf30SG_<0uX=z1Rwwb2tWV=5P-lj7Qp@gG45P64FV8= z00bZa0SG_<0uX=z1R&55!2Lgl0t6rc0SG_<0uX=z1Rwwb2teTY3$W+^8^8b0k^x!= nX!X-7)9RyDqSZqy76?E90uX=z1Rwwb2tWV=5P$##j;O%Dw2wSD diff --git a/backend/index.js b/backend/index.js index 185c467..84026f8 100644 --- a/backend/index.js +++ b/backend/index.js @@ -1,5 +1,6 @@ const express = require("express"); const cors = require("cors"); +const bcrypt = require("bcryptjs"); const app = express(); @@ -49,10 +50,10 @@ function initial() { { name: 'administrato' }, ]); User.bulkCreate([ - { firstName: 'Nolan', lastName: 'Ryan', dateOfBirth: new Date(1947, 1, 31), email: 'ryan.nolan@bullpen.com', password: 'nolan' }, - { firstName: 'Sandy', lastName: 'Koufax', dateOfBirth: new Date(1935, 12, 30), email: 'sandy.koufax@bullpen.com', password: 'sandy' }, - { firstName: 'Pedro', lastName: 'Martinez', dateOfBirth: new Date(1971, 10, 25), email: 'pedro.martinez@bullpen.com', password: 'pedro' }, - { firstName: 'randy', lastName: 'johnson', dateOfBirth: new Date(1963, 9, 10), email: 'randy.johnson@bullpen.com', password: 'randy' }, + { firstName: 'Nolan', lastName: 'Ryan', dateOfBirth: new Date(1947, 1, 31), email: 'ryan.nolan@bullpen.com', password: bcrypt.hashSync('nolan', 8) }, + { firstName: 'Sandy', lastName: 'Koufax', dateOfBirth: new Date(1935, 12, 30), email: 'sandy.koufax@bullpen.com', password: bcrypt.hashSync('sandy', 8) }, + { firstName: 'Pedro', lastName: 'Martinez', dateOfBirth: new Date(1971, 10, 25), email: 'pedro.martinez@bullpen.com', password: bcrypt.hashSync('pedro', 8) }, + { firstName: 'randy', lastName: 'johnson', dateOfBirth: new Date(1963, 9, 10), email: 'randy.johnson@bullpen.com', password: bcrypt.hashSync('randy', 8) } ]); PitchType.bulkCreate([ { name: 'Fastball', abbreviation: 'FB' }, diff --git a/backend/models/user.model.js b/backend/models/user.model.js index 44f48cd..21b1cff 100644 --- a/backend/models/user.model.js +++ b/backend/models/user.model.js @@ -24,12 +24,7 @@ module.exports = (sequelize) => { email: { type: DataTypes.STRING, allowNull: false, - unique: true, - validate: { - // We require usernames to have length of at least 3, and - // only use letters, numbers and underscores. - is: /^\w{3,}$/ - } + unique: true }, password: { type: DataTypes.STRING, @@ -47,9 +42,9 @@ module.exports = (sequelize) => { } }); - User.prototype.validPassword = async function (password) { - return bcrypt.compare(password, this.password); + User.prototype.validPassword = function (password) { + return bcrypt.compareSync(password, this.password); }; return User; -}; \ No newline at end of file +};