@@ -5235,8 +5235,14 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface
5235
5235
$ passwordColumnName = $ this ->getProperty ('passwordColumn ' , 'password ' );
5236
5236
$ passwordColumn = $ table ->getColumn ($ passwordColumnName );
5237
5237
$ condition = new ColumnCondition ($ usernameColumn , 'eq ' , $ username );
5238
- $ columnNames = $ table ->getColumnNames ();
5239
- $ users = $ this ->db ->selectAll ($ table , $ columnNames , $ condition , [], 0 , -1 );
5238
+ $ returnedColumns = $ this ->getProperty ('returnedColumns ' , '' );
5239
+ if (!$ returnedColumns ) {
5240
+ $ columnNames = $ table ->getColumnNames ();
5241
+ } else {
5242
+ $ columnNames = array_map ('trim ' , explode (', ' , $ returnedColumns ));
5243
+ $ columnNames [] = $ passwordColumnName ;
5244
+ }
5245
+ $ users = $ this ->db ->selectAll ($ table , $ columnNames , $ condition , [], 0 , 1 );
5240
5246
foreach ($ users as $ user ) {
5241
5247
if (password_verify ($ password , $ user [$ passwordColumnName ]) == 1 ) {
5242
5248
if (!headers_sent ()) {
@@ -5253,7 +5259,9 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface
5253
5259
if (isset ($ _SESSION ['user ' ])) {
5254
5260
$ user = $ _SESSION ['user ' ];
5255
5261
unset($ _SESSION ['user ' ]);
5256
- session_destroy ();
5262
+ if (session_status () != PHP_SESSION_NONE ) {
5263
+ session_destroy ();
5264
+ }
5257
5265
return $ this ->responder ->success ($ user );
5258
5266
}
5259
5267
return $ this ->responder ->error (ErrorCode::AUTHENTICATION_REQUIRED , '' );
0 commit comments