diff --git a/client/components/pages/login.jsx b/client/components/pages/login.jsx index eb2dc3e..5232812 100644 --- a/client/components/pages/login.jsx +++ b/client/components/pages/login.jsx @@ -23,9 +23,12 @@ const LogIn = props => { evt => { evt.preventDefault(); handleSubmit(emailElement.value, passwordElement.value) - .then(res => res ? alert(res) : null) - .then(() => emailElement.value = passwordElement.value = '') //clear input - .then(() => { window.location.reload(true); }) //BUFGIX: force reload of the header element + .then(([res, ok]) => { + alert(res); + if (ok) { + window.location.reload(true); //BUFGIX: force reload of the header element + } + }) .catch(e => console.error(e)) ; } @@ -64,9 +67,9 @@ const handleSubmit = async (email, password) => { const result = await fetch('/api/accounts/login', { method: 'POST', body: formData }); if (result.ok) { - return result.text(); + return [await result.text(), true]; } else { - return result.text(); + return [await result.text(), false]; } }; diff --git a/client/components/panels/header.jsx b/client/components/panels/header.jsx index e5f70a1..ee7b8ea 100644 --- a/client/components/panels/header.jsx +++ b/client/components/panels/header.jsx @@ -22,7 +22,7 @@ const Member = () => { }; const logout = async () => { - await fetch('/api/accounts/logout') + await fetch('/api/accounts/logout', { method: 'POST' }) .catch(e => console.error(e)) ; }; diff --git a/server/accounts/index.js b/server/accounts/index.js index 0c3f530..ac5021d 100644 --- a/server/accounts/index.js +++ b/server/accounts/index.js @@ -5,6 +5,6 @@ const router = express.Router(); router.post('/signup', require('./signup')); router.get('/validation', require('./validation')); router.post('/login', require('./login')); -router.get('/logout', require('./logout')); +router.post('/logout', require('./logout')); module.exports = router; diff --git a/server/accounts/login.js b/server/accounts/login.js index e924471..ae09a63 100644 --- a/server/accounts/login.js +++ b/server/accounts/login.js @@ -24,12 +24,16 @@ const route = async (req, res) => { } }); + if (!account) { + return res.status(401).send('incorrect email or password'); + } + //compare passwords const compare = utils.promisify(bcrypt.compare); const match = await compare(req.fields.password, account.hash); if (!match) { - return res.status(401).send('passwords don\'t match'); + return res.status(401).send('incorrect email or password'); } //save the session and cookie data