aboutsummaryrefslogtreecommitdiff
path: root/src/server/authentication/Passport.ts
diff options
context:
space:
mode:
authorsharkiecodes <lanyi_stroud@brown.edu>2025-07-22 12:35:43 -0400
committersharkiecodes <lanyi_stroud@brown.edu>2025-07-22 12:35:43 -0400
commitd31a740378e8d4fd58ec329ba83dd20d28bfe5b4 (patch)
treeb46103d4f9fd2b04ccfc25023e1cb0156168f412 /src/server/authentication/Passport.ts
parent62f9b89dad334d3d6405f5286e66b253090a82c7 (diff)
parent3f489c64d9e55d452c255f8e2c10b0d754883dbb (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.ts13
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) => {