@@ -9,6 +9,12 @@ const LocalStrategy = require('passport-local').Strategy
99 , authConfig = require ( './auth' )
1010 , log = require ( './log' ) ( )
1111
12+ function postUserLogin ( user ) {
13+ user . updateOne ( { lastLoggedIn : new Date ( ) } )
14+ . then ( ( ) => { } )
15+ . catch ( console . error )
16+ }
17+
1218module . exports = function ( passport ) {
1319
1420 passport . serializeUser ( ( user , done ) => {
@@ -72,6 +78,7 @@ module.exports = function (passport) {
7278
7379 if ( ! user . validPassword ( password ) ) return done ( { message : 'Wrong password.' } )
7480
81+ postUserLogin ( user ) // async, don't wait
7582 return done ( null , user )
7683 } )
7784
@@ -91,6 +98,7 @@ module.exports = function (passport) {
9198
9299 User . findOne ( query , ( err , user ) => {
93100 if ( err || ! user ) return done ( err || { message : 'Unable to authenticate.' } , false )
101+ postUserLogin ( user ) // async, don't wait
94102 done ( null , user )
95103 } )
96104 } ) ) )
@@ -109,6 +117,7 @@ module.exports = function (passport) {
109117 password = ( password || '' ) . trim ( )
110118 if ( ! user . validPassword ( password ) ) return done ( { message : 'Wrong password.' } )
111119
120+ postUserLogin ( user ) // async, don't wait
112121 return done ( null , user )
113122 } )
114123 } ) )
@@ -131,7 +140,10 @@ module.exports = function (passport) {
131140 process . nextTick ( ( ) => {
132141 User . findOne ( { 'facebook.id' : profile . id } , ( err , user ) => {
133142 if ( err ) return done ( err )
134- if ( user ) return done ( null , user )
143+ if ( user ) {
144+ postUserLogin ( user ) // async, don't wait
145+ return done ( null , user )
146+ }
135147 else {
136148 const newUser = new User ( {
137149 created : Date . now ( )
@@ -168,8 +180,10 @@ module.exports = function (passport) {
168180 process . nextTick ( ( ) => {
169181 User . findOne ( { 'google.id' : profile . id } , ( err , user ) => {
170182 if ( err ) return done ( err )
171-
172- if ( user ) return done ( null , user )
183+ if ( user ) {
184+ postUserLogin ( user ) // async, don't wait
185+ return done ( null , user )
186+ }
173187 else {
174188 const newUser = new User ( {
175189 created : Date . now ( )
0 commit comments