diff options
author | 2023-08-21 23:41:26 +0200 | |
---|---|---|
committer | 2023-08-21 23:41:26 +0200 | |
commit | 4bbd420ccff3b640612b451244d3d3422e3b470e (patch) | |
tree | dba51c7141ebc810f7de155fe8c3640ccb535ef2 /routes/authRoutes.js | |
parent | 9fb0815b575cfc23ced6722b1a164328bd3cff1a (diff) | |
download | auth-service-master.tar.gz auth-service-master.tar.bz2 auth-service-master.zip |
Diffstat (limited to 'routes/authRoutes.js')
-rw-r--r-- | routes/authRoutes.js | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/routes/authRoutes.js b/routes/authRoutes.js index 110e7f4..ad612ce 100644 --- a/routes/authRoutes.js +++ b/routes/authRoutes.js @@ -1,5 +1,50 @@ const router = require('express').Router() const User = require('../model/User') +const createJwt = require('../helpers/createJwt') +const sendMail = require('../helpers/sendMail') + +// Verify (send verification email) +router.get('/verify', async (req, res) => { + try { + const { email } = req.user + + if (!email) throw new Error() + + const { verify } = await User.findOne({ email }) + + sendMail({ + to: email, + subject: 'Verification Code', + text: `Last step missing - verify your account.\nYour verification code: ${verify}`, + html: `<h2>Last step missing - verify your account.</h2><br/><h3>Your verification code: <b>${verify}</b></h3>`, + }) + + res.status(204).send() + } catch (err) { + res.status(401).send({ error: 'Could not verify user' }) + } +}) + +// Verify +router.post('/verify', async (req, res) => { + try { + const { email } = req.user + const code = req.body.code + + if (!email || !code) throw new Error() + + const user = await User.verify({ email, code }) + + if (!user) throw new Error() + + const jwtToken = createJwt(user) + + res.status(200).send({ jwtToken }) + } catch (err) { + res.status(401).send({ error: 'Could not verify user' }) + } +}) + // Logout (pass sessionId or will logout one from jwt) router.post('/logout', async (req, res) => { @@ -12,7 +57,6 @@ router.post('/logout', async (req, res) => { res.status(204).send() } catch (err) { - console.log(err) res.status(401).send({ error: 'Could not logout' }) } }) |