def _get_id_token_user(token, issuers, audiences, allowed_client_ids, time_now, cache):
<EOL>for issuer_key, issuer in list(issuers.items()):<EOL><INDENT>issuer_cert_uri = convert_jwks_uri(issuer.jwks_uri)<EOL>try:<EOL><INDENT>parsed_token = _verify_signed_jwt_with_certs(<EOL>token, time_now, cache, cert_uri=issuer_cert_uri)<EOL><DEDENT>except Exception:  <EOL><INDENT>_logger.debug(<EOL>'<STR_LIT>', issuer_key, exc_info=True)<EOL>continue<EOL><DEDENT>issuer_values = _listlike_guard(issuer.issuer, '<STR_LIT>', log_warning=False)<EOL>if isinstance(audiences, _Mapping):<EOL><INDENT>audiences = audiences[issuer_key]<EOL><DEDENT>if _verify_parsed_token(<EOL>parsed_token, issuer_values, audiences, allowed_client_ids,<EOL>is_legacy_google_auth=(issuer.issuer == _ISSUERS)):<EOL><INDENT>email = parsed_token['<STR_LIT:email>']<EOL>return users.User(email)<EOL><DEDENT><DEDENT>
Get a User for the given id token, if the token is valid.

    Args:
      token: The id_token to check.
      issuers: dict of Issuers
      audiences: List of audiences that are acceptable.
      allowed_client_ids: List of client IDs that are acceptable.
      time_now: The current time as a long (eg. long(time.time())).
      cache: Cache to use (eg. the memcache module).

    Returns:
      A User if the token is valid, None otherwise.