original_string: public function authenticate(ServerRequestInterface $request): ?UserInterface
      {
          foreach ($this->authenticationServices as $authenticationService) {
              $user = $authenticationService->authenticate($request);
  
              if ($user !== null) {
                  return $user;
              }
          }
  
          return null;
      }
code: public function authenticate(ServerRequestInterface $request): ?UserInterface
      {
          foreach ($this->authenticationServices as $authenticationService) {
              $user = $authenticationService->authenticate($request);
  
              if ($user !== null) {
                  return $user;
              }
          }
  
          return null;
      }
code_tokens: public function authenticate ( ServerRequestInterface $ request ) : ? UserInterface { foreach ( $ this -> authenticationServices as $ authenticationService ) { $ user = $ authenticationService -> authenticate ( $ request ) ; if ( $ user !== null ) { return $ user ; } } return null ; }
docstring: Chain available authentication services and try authenticate using it
  If no one authentication service can authenticate return null
  Other way return user from first service that can authenticate
  Last authentication service provide an unauthorized response if no one can authenticate
  
  @param ServerRequestInterface $request
  @return UserInterface
docstring_tokens: Chain available authentication services and try authenticate using it If no one authentication service can authenticate return null Other way return user from first service that can authenticate Last authentication service provide an unauthorized response if no one can authenticate