`_resolve_features` ignores the token
Hi ! Your HF_ENDPOINT seems wrong because of the extra "/"
```diff
- os.environ["HF_ENDPOINT"] = "https://hub-ci.huggingface.co/"
+ os.environ["HF_ENDPOINT"] = "https://hub-ci.huggingface.co"
```

can you try again without the extra "/" ? Oh, yes, sorry, but it's not the issue.

In my code, I set `HF_ENDPOINT=https://hub-ci.huggingface.co`. I added `os.environ["HF_ENDPOINT"] = "https://hub-ci.huggingface.co/"` afterward just to indicate that we had to have this env var and made a mistake there I can't reproduce on my side. I tried using a private dataset repo with a CSV file on hub-ci

What's your version of `huggingface_hub` ? I can't reproduce either... Not sure what has occurred, very sorry to have made you lost your time on that  I got something similar in https://github.com/huggingface/datasets-server/pull/608. Look how changing the order of the tests (https://github.com/huggingface/datasets-server/pull/608/commits/2c50fe833323de3dfdc76c5cd68639279e0887f8) change the result, which means that something has a side-effect:
- https://github.com/huggingface/datasets-server/actions/runs/3264636253/jobs/5365612918 works
- https://github.com/huggingface/datasets-server/actions/runs/3264651839/jobs/5365654924 does not work

I still couldn't reproduce it with a simpler script...  The issue happens because `extend_module_for_streaming` can't be used several times on packaged builders like `csv` to apply a new auth token. Indeed `extend_module_for_streaming` only applies authentication once, and on subsequent calls does nothing:

https://github.com/huggingface/datasets/blob/07b7c38d9e9c72c74b02524c432ca64d0d3738f4/src/datasets/streaming.py#L62-L64

This behavior exists because the authenticatoin wrapper only supports one token. This is an issue for packaged builders which can be used to load several datasets, so it may require several tokens.

This can be fixed by storing a dict `token_per_repo_id` instead of `use_auth_token` in the authentication wrapper, and by making it possible to update the authentication wrapper with a new token I fixed the datasets-server CI with: https://github.com/huggingface/datasets-server/pull/608

See https://github.com/huggingface/datasets-server/actions/runs/3265359326/jobs/5367445018

Thanks for the help @lhoestq ! > This can be fixed by storing a dict token_per_repo_id instead of use_auth_token in the authentication wrapper, and by making it possible to update the authentication wrapper with a new token

If I call the module on the same repo twice: first with authentication, then without authentication, would the second call use authentication anyway? It sounds like a bug: the argument passed to the function would be silently ignored. Yes exactly, this is a known bug And do you think this bug could be solved as well when fixing this issue? yes definitely !
## Describe the bug

When calling [`_resolve_features()`](https://github.com/huggingface/datasets/blob/54b532a8a2f5353fdb0207578162153f7b2da2ec/src/datasets/iterable_dataset.py#L1255) on a gated dataset, ie. a dataset which requires a token to be loaded, the token seems to be ignored even if it has been provided to `load_dataset` before.

## Steps to reproduce the bug

```python
import os

os.environ["HF_ENDPOINT"] = "https://hub-ci.huggingface.co/"
hf_token = "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"

from datasets import load_dataset

# public
dataset_name = "__DUMMY_DATASETS_SERVER_USER__/repo_csv_data-16612654226756"
config_name = "__DUMMY_DATASETS_SERVER_USER__--repo_csv_data-16612654226756"
split_name = "train"

iterable_dataset = load_dataset(
    dataset_name,
    name=config_name,
    split=split_name,
    streaming=True,
    use_auth_token=hf_token,
)
iterable_dataset = iterable_dataset._resolve_features()
print(iterable_dataset.features)

# gated
dataset_name = "__DUMMY_DATASETS_SERVER_USER__/repo_csv_data-16612654317644"
config_name = "__DUMMY_DATASETS_SERVER_USER__--repo_csv_data-16612654317644"
split_name = "train"


iterable_dataset = load_dataset(
    dataset_name,
    name=config_name,
    split=split_name,
    streaming=True,
    use_auth_token=hf_token,
)
try:
    iterable_dataset = iterable_dataset._resolve_features()
except FileNotFoundError as e:
    print("FAILS")
```

## Expected results

I expect to have the same result on a public dataset and on a gated (or private) dataset, if the token has been provided.

## Actual results

An exception is thrown on gated datasets.

## Environment info

- `datasets` version: 2.4.0
- Platform: Linux-5.15.0-1017-aws-x86_64-with-glibc2.35
- Python version: 3.9.6
- PyArrow version: 7.0.0
- Pandas version: 1.4.2