diff options
| author | sharkiecodes <lanyi_stroud@brown.edu> | 2025-07-22 12:35:43 -0400 |
|---|---|---|
| committer | sharkiecodes <lanyi_stroud@brown.edu> | 2025-07-22 12:35:43 -0400 |
| commit | d31a740378e8d4fd58ec329ba83dd20d28bfe5b4 (patch) | |
| tree | b46103d4f9fd2b04ccfc25023e1cb0156168f412 /src/server/authentication/Passport.ts | |
| parent | 62f9b89dad334d3d6405f5286e66b253090a82c7 (diff) | |
| parent | 3f489c64d9e55d452c255f8e2c10b0d754883dbb (diff) | |
Merge branch 'master' into lanyi-expanded-agent-paper-main
Diffstat (limited to 'src/server/authentication/Passport.ts')
| -rw-r--r-- | src/server/authentication/Passport.ts | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/server/authentication/Passport.ts b/src/server/authentication/Passport.ts index a62d38e3e..38a99bd45 100644 --- a/src/server/authentication/Passport.ts +++ b/src/server/authentication/Passport.ts @@ -1,25 +1,28 @@ import * as passport from 'passport'; import * as passportLocal from 'passport-local'; import User, { DashUserModel } from './DashUserModel'; +import { IncomingMessage } from 'webpack-dev-middleware'; const LocalStrategy = passportLocal.Strategy; -passport.serializeUser<any, any>((req, user, done) => { +// eslint-disable-next-line @typescript-eslint/no-explicit-any +passport.serializeUser<any, IncomingMessage & DashUserModel>((req, user, done) => { done(undefined, (user as DashUserModel)?.id); }); -passport.deserializeUser<any, any>((id, done) => { +// eslint-disable-next-line @typescript-eslint/no-explicit-any +passport.deserializeUser<any, IncomingMessage & DashUserModel>((id, done) => { User.findById(id) .exec() - .then((user: DashUserModel) => done(undefined, user)); + .then((user: DashUserModel | null) => 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() }) - .then((user: DashUserModel) => { - if (!user) { + .then((user: DashUserModel | null) => { + if (!user?.comparePassword) { done(undefined, false, { message: 'Invalid email or password' }); // invalid email } else { user.comparePassword(password, (error: Error, isMatch: boolean) => { |
