From d0518de82c6e7ba48ad494a40ce74d4993bb9239 Mon Sep 17 00:00:00 2001 From: DanielMeeusen Date: Thu, 16 Jun 2022 02:39:56 -0700 Subject: [PATCH 1/2] emailOriginal option --- api-lib/db/user.js | 8 +++++--- pages/api/users/index.js | 5 +++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/api-lib/db/user.js b/api-lib/db/user.js index e9473ae..8363a0c 100644 --- a/api-lib/db/user.js +++ b/api-lib/db/user.js @@ -53,12 +53,13 @@ export async function updateUserById(db, id, data) { export async function insertUser( db, - { email, originalPassword, bio = '', name, profilePicture, username } + { emailOriginal, email, originalPassword, bio = '', name, profilePicture, username } ) { const user = { + emailOriginal, + email, emailVerified: false, profilePicture, - email, name, username, bio, @@ -98,7 +99,8 @@ export async function UNSAFE_updateUserPassword(db, id, newPassword) { export function dbProjectionUsers(prefix = '') { return { [`${prefix}password`]: 0, + [`${prefix}emailOriginal`]: 0, [`${prefix}email`]: 0, [`${prefix}emailVerified`]: 0, }; -} +} \ No newline at end of file diff --git a/pages/api/users/index.js b/pages/api/users/index.js index 8576df8..66d863c 100644 --- a/pages/api/users/index.js +++ b/pages/api/users/index.js @@ -27,8 +27,10 @@ handler.post( const db = await getMongoDb(); let { username, name, email, password } = req.body; + const emailOriginal = email; username = slugUsername(req.body.username); email = normalizeEmail(req.body.email); + if (!isEmail(email)) { res .status(400) @@ -47,13 +49,16 @@ handler.post( .json({ error: { message: 'The username has already been taken.' } }); return; } + const user = await insertUser(db, { + emailOriginal, email, originalPassword: password, bio: '', name, username, }); + req.logIn(user, (err) => { if (err) throw err; res.status(201).json({ From c212a50a18da1cfb4575c2936cd1a1237087a25e Mon Sep 17 00:00:00 2001 From: DanielMeeusen Date: Sat, 18 Jun 2022 02:01:26 -0700 Subject: [PATCH 2/2] email verification front end --- page-components/Settings/index.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/page-components/Settings/index.jsx b/page-components/Settings/index.jsx index ebbd65b..d109565 100644 --- a/page-components/Settings/index.jsx +++ b/page-components/Settings/index.jsx @@ -31,7 +31,7 @@ const EmailVerify = ({ user }) => {

Note: Your email ( - {user.email}) is unverified. + {user.emailOriginal}) is unverified.

@@ -204,6 +204,7 @@ export const Settings = () => { router.replace('/login'); } }, [router, data, error]); + return (