diff options
| author | bobzel <zzzman@gmail.com> | 2024-05-17 14:55:36 -0400 |
|---|---|---|
| committer | bobzel <zzzman@gmail.com> | 2024-05-17 14:55:36 -0400 |
| commit | 0b451af28e5aef6b749da61e8a9fcd0a840789ac (patch) | |
| tree | bdee4e28ee4715b69299a8da1b615c70b6adc445 /src/server/authentication/Passport.ts | |
| parent | 8c1b420a143e4b72ec551277887c211ca6ca003b (diff) | |
| parent | 38a382a03675d6a50ec7de75f05025efd093f570 (diff) | |
merged with new master
Diffstat (limited to 'src/server/authentication/Passport.ts')
| -rw-r--r-- | src/server/authentication/Passport.ts | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/src/server/authentication/Passport.ts b/src/server/authentication/Passport.ts index a9cf6698b..ca9e3058e 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 { DashUserModel, default as User } from './DashUserModel'; +import User, { DashUserModel } from './DashUserModel'; const LocalStrategy = passportLocal.Strategy; @@ -11,22 +11,25 @@ passport.serializeUser<any, any>((req, user, done) => { passport.deserializeUser<any, any>((id, done) => { User.findById(id) .exec() - .then(user => done(undefined, user)); + .then((user: any) => 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() }) - .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); - }); + .then((user: DashUserModel) => { + if (!user) { + done(undefined, false, { message: 'Invalid email or password' }); // invalid email + } else { + 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); + }); + } }) - .catch(error => done(error)); + .catch((error: any) => done(error)); }) ); |
