code: def user_getinfo(self, fields, access_token=None):
          
          if g.oidc_id_token is None and access_token is None:
              raise Exception('User was not authenticated')
          info = {}
          all_info = None
          for field in fields:
              if access_token is None and field in g.oidc_id_token:
                  info[field] = g.oidc_id_token[field]
              elif current_app.config['OIDC_USER_INFO_ENABLED']:
                  # This was not in the id_token. Let's get user information
                  if all_info is None:
                      all_info = self._retrieve_userinfo(access_token)
                      if all_info is None:
                          # To make sure we don't retry for every field
                          all_info = {}
                  if field in all_info:
                      info[field] = all_info[field]
                  else:
                      # We didn't get this information
                      pass
          return info
docs: Request multiple fields of information about the user.
  
          :param fields: The names of the fields requested.
          :type fields: list
          :returns: The values of the current user for the fields requested.
              The keys are the field names, values are the values of the
              fields as indicated by the OpenID Provider. Note that fields
              that were not provided by the Provider are absent.
          :rtype: dict
          :raises Exception: If the user was not authenticated. Check this with
              user_loggedin.
  
          .. versionadded:: 1.0