From df7dd95b83dc1d223718e850ca2733804a77b173 Mon Sep 17 00:00:00 2001 From: Vincent Helmreich Date: Tue, 14 Mar 2017 15:36:42 +0100 Subject: [PATCH] Users can now login with email address instead of username --- src/Routers/UsersRouter.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Routers/UsersRouter.js b/src/Routers/UsersRouter.js index 39273418b2..5aaee803b8 100644 --- a/src/Routers/UsersRouter.js +++ b/src/Routers/UsersRouter.js @@ -81,8 +81,17 @@ export class UsersRouter extends ClassesRouter { let user; let isValidPassword = false; - - return req.config.database.find('_User', { username: req.body.username }) + + //find out if user wants to get logged in with username or email + let isEmail = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(req.body.username); + let queryOptions = {} + if(isEmail){ + queryOptions.email = req.body.username; + }else{ + queryOptions.username = req.body.username; + } + + return req.config.database.find('_User', queryOptions) .then((results) => { if (!results.length) { throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'Invalid username/password.');