aboutsummaryrefslogtreecommitdiff
path: root/src/server/authentication/Passport.ts
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2023-12-21 14:55:48 -0500
committerbobzel <zzzman@gmail.com>2023-12-21 14:55:48 -0500
commit1caba64ee0f32ee8af79263cd4ef2a8bc5d5146e (patch)
tree0fa0e957d1f342fdc6ed4a4b43f5dddfddb1298a /src/server/authentication/Passport.ts
parent02eb7da95df283606d4275a22d9451cef371c3b5 (diff)
parent2691b951d96f2ce7652acbea9e340b61737b3b57 (diff)
Merge branch 'moreUpgrading' into dataViz-annotations
Diffstat (limited to 'src/server/authentication/Passport.ts')
-rw-r--r--src/server/authentication/Passport.ts35
1 files changed, 19 insertions, 16 deletions
diff --git a/src/server/authentication/Passport.ts b/src/server/authentication/Passport.ts
index d7f891c34..a9cf6698b 100644
--- a/src/server/authentication/Passport.ts
+++ b/src/server/authentication/Passport.ts
@@ -1,6 +1,6 @@
import * as passport from 'passport';
import * as passportLocal from 'passport-local';
-import { default as User } from './DashUserModel';
+import { DashUserModel, default as User } from './DashUserModel';
const LocalStrategy = passportLocal.Strategy;
@@ -9,21 +9,24 @@ passport.serializeUser<any, any>((req, user, done) => {
});
passport.deserializeUser<any, any>((id, done) => {
- User.findById(id, (err: any, user: any) => {
- done(err, user);
- });
+ User.findById(id)
+ .exec()
+ .then(user => done(undefined, user));
});
// AUTHENTICATE JUST WITH EMAIL AND PASSWORD
-passport.use(new LocalStrategy({ usernameField: 'email', passReqToCallback: true }, (req, email, password, done) => {
- User.findOne({ email: email.toLowerCase() }, (error: any, user: any) => {
- if (error) return done(error);
- if (!user) return done(undefined, false, { message: "Invalid email or password" }); // invalid email
- user.comparePassword(password, (error: Error, isMatch: boolean) => {
- if (error) return done(error);
- if (!isMatch) return done(undefined, false, { message: "Invalid email or password" }); // invalid password
- // valid authentication HERE
- return done(undefined, user);
- });
- });
-})); \ No newline at end of file
+passport.use(
+ new LocalStrategy({ usernameField: 'email', passReqToCallback: true }, (req, email, password, done) => {
+ User.findOne({ email: email.toLowerCase() })
+ .then(user => {
+ if (!user) return done(undefined, false, { message: 'Invalid email or password' }); // invalid email
+ (user as any as DashUserModel).comparePassword(password, (error: Error, isMatch: boolean) => {
+ if (error) return done(error);
+ if (!isMatch) return done(undefined, false, { message: 'Invalid email or password' }); // invalid password
+ // valid authentication HERE
+ return done(undefined, user);
+ });
+ })
+ .catch(error => done(error));
+ })
+);