Skip to content

Commit 6810016

Browse files
authored
Merge pull request #3468 from processing/task/last-logged-in
Add LastLoginTimestamp to User Model
2 parents 5efff47 + dcc8c9e commit 6810016

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

server/config/passport.js

+11
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ passport.use(
5454
const isMatch = await user.comparePassword(password);
5555

5656
if (isMatch) {
57+
user.lastLoginTimestamp = Date.now();
58+
await user.save();
59+
5760
return done(null, user);
5861
} else { // eslint-disable-line
5962
return done(null, false, { msg: 'Invalid email or password' });
@@ -88,6 +91,8 @@ passport.use(
8891
}
8992

9093
keyDocument.lastUsedAt = Date.now();
94+
user.lastLoginTimestamp = Date.now();
95+
9196
await user.save();
9297
return done(null, user);
9398
} catch (err) {
@@ -140,6 +145,9 @@ passport.use(
140145
} else if (existingUser.banned) {
141146
return done(null, false, { msg: accountSuspensionMessage });
142147
}
148+
existingUser.lastLoginTimestamp = Date.now();
149+
await existingUser.save();
150+
143151
return done(null, existingUser);
144152
}
145153

@@ -239,6 +247,9 @@ passport.use(
239247
} else if (existingUser.banned) {
240248
return done(null, false, { msg: accountSuspensionMessage });
241249
}
250+
existingUser.lastLoginTimestamp = Date.now();
251+
await existingUser.save();
252+
242253
return done(null, existingUser);
243254
}
244255

server/models/user.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,8 @@ const userSchema = new Schema(
8282
enum: ['none', 'essential', 'all'],
8383
default: 'none'
8484
},
85-
banned: { type: Boolean, default: false }
85+
banned: { type: Boolean, default: false },
86+
lastLoginTimestamp: { type: Date }
8687
},
8788
{ timestamps: true, usePushEach: true }
8889
);

server/server.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,8 @@ app.use(
9494
name: 'sessionId',
9595
cookie: {
9696
httpOnly: true,
97-
secure: false
97+
secure: false,
98+
maxAge: 1000 * 60 * 60 * 24 * 28 // 4 weeks in milliseconds
9899
},
99100
store: new MongoStore({
100101
clientPromise,

0 commit comments

Comments
 (0)