@@ -156,6 +156,7 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface
156
156
session_regenerate_id (true );
157
157
}
158
158
unset($ user [$ passwordColumnName ]);
159
+ $ _SESSION ['updatedAt ' ] = time ();
159
160
$ _SESSION ['user ' ] = $ user ;
160
161
return $ this ->responder ->success ($ user );
161
162
} else {
@@ -173,6 +174,7 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface
173
174
session_regenerate_id (true );
174
175
}
175
176
unset($ user [$ passwordColumnName ]);
177
+ $ _SESSION ['updatedAt ' ] = time ();
176
178
$ _SESSION ['user ' ] = $ user ;
177
179
return $ this ->responder ->success ($ user );
178
180
}
@@ -221,6 +223,25 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface
221
223
}
222
224
if ($ method == 'GET ' && $ path == 'me ' ) {
223
225
if (isset ($ _SESSION ['user ' ])) {
226
+ $ updateAfter = $ this ->getProperty ('refreshSession ' ,0 ) * 60 ;//update session after x minutes
227
+ if ($ updateAfter > 0 &&( time () >($ _SESSION ['user ' ]['updatedAt ' ] + $ updateAfter ))){
228
+ $ tableName = $ this ->getProperty ('loginTable ' ,'users ' );
229
+ $ table = $ this ->reflection ->getTable ($ tableName );
230
+ $ pkName = $ table ->getPk ()->getName ();
231
+ $ passwordColumnName = $ this ->getProperty ('passwordColumn ' ,'' );
232
+ $ returnedColumns = $ this ->getProperty ('returnedColumns ' ,'' );
233
+ if (!$ returnedColumns ){
234
+ $ columnNames = $ table ->getColumnNames ();
235
+ }else {
236
+ $ columnNames = array_map)('trim',explode (', ' ,$ returnedColumns ));
237
+ $ columnNames [] = $ passwordColumnName ;
238
+ $ columnNames = array_values (array_unique ($ columnNames ));
239
+ }
240
+ $ user = $ this ->db ->selectSingle ($ table ,$ columnNames ,$ _SESSION ['user ' ][$ pkName ]);
241
+ unset($ user [$ passwordColumnName ]);
242
+ $ user ['updatedAt ' ] = time ();
243
+ $ _SESSION ['user ' ] = $ user ;
244
+ }
224
245
return $ this ->responder ->success ($ _SESSION ['user ' ]);
225
246
}
226
247
return $ this ->responder ->error (ErrorCode::AUTHENTICATION_REQUIRED , '' );
0 commit comments