Jelajahi Sumber

BugFix: Ensure to be able to login with both of username or email

Yuki Takei 8 tahun lalu
induk
melakukan
35aa0602c3
1 mengubah file dengan 8 tambahan dan 12 penghapusan
  1. 8 12
      lib/routes/login.js

+ 8 - 12
lib/routes/login.js

@@ -76,21 +76,17 @@ module.exports = function(crowi, app) {
     var loginForm = req.body.loginForm;
     var loginForm = req.body.loginForm;
 
 
     if (req.method == 'POST' && req.form.isValid) {
     if (req.method == 'POST' && req.form.isValid) {
-      var email = loginForm.email;
+      var username = loginForm.username;
       var password = loginForm.password;
       var password = loginForm.password;
 
 
-      User.findUserByEmailAndPassword(email, password, function(err, userData) {
-        debug('on login findUserByEmailAndPassword', err, userData);
-        if (userData) {
-          userData.updateLastLoginAt(Date.now(), function(err, userData) {
-            if (err) {
-              debug(err);
-            }
-          });
-          loginSuccessForPassport(req, res, userData);
-        } else {
-          loginFailure(req, res);
+      // find user
+      User.findUserByUsernameOrEmail(username, password, (err, user) => {
+        if (err) { return loginFailure(req, res); }
+        // check existence and password
+        if (!user || !user.isPasswordValid(password)) {
+          return loginFailure(req, res);
         }
         }
+        return loginSuccess(req, res, user);
       });
       });
     } else { // method GET
     } else { // method GET
       if (req.form) {
       if (req.form) {