Giter Club home page Giter Club logo

Comments (15)

echarles avatar echarles commented on September 25, 2024 1

Am I interpreting this right --- that you don't see a fix for anon token-auth coming from jupyter-server? Rather you're advising us to take the issue up with VS Code?

I think your interpretation is correct, but I would like first to further discuss and get inputs from other on this. I will try to join next week jupyter server dev meeting to have more opinions on this.

from jupyter_server.

hbcarlos avatar hbcarlos commented on September 25, 2024 1

@daeh We discussed it again during the server weekly meeting. This is an issue with VSCode, not with Jupiter Server. Jupyter Server uses cookies to authenticate clients, as described in the documentation. Once you logged in with the token, the server will set a cookie, and the token is no longer necessary.

For servers with token-authentication enabled, the URL in the above listing will include the token, so you can copy and paste that URL into your browser to login. If a server has no token (e.g. it has a password or has authentication disabled), the URL will not include the token argument. Once you have visited this URL, a cookie will be set in your browser and you won’t need to use the token again, unless you switch browsers, clear your cookies, or start a Jupyter server on a new port.

I finally managed to reproduce it. In VSCode, there are two ways of connecting to a remote kernel. The first one and the one described in the VSCode documentation is by setting the URL, including the token, to a running Jupyter Server http://<ip-address>:<port>/?token=<token>. Using the method, VSCode will ignore the cookie and use the token for each request. Since the cookie is the one with the anonymous user information, the server will create a new random name on each request.

The second option consists of setting the URL without the token, then VSC will show another prompt requesting the token. In this case, VSCode will store the cookie and use it on each request.

from jupyter_server.

afshin avatar afshin commented on September 25, 2024 1

In case somebody from the VSCode looks at this, one theory about what's happening is that when the user is presented with the challenge/response for authentication, the extension holds on to the cookies generated by the server, but when the extension receives a valid response by passing in the token, the extension might not be respecting the sessions cookies set by the server.

So for end users who experience this behavior, the current workaround is to not pass the URL containing the token to VSCode and instead allow the extension to ask them for it – until this issue is resolved upstream.

from jupyter_server.

welcome avatar welcome commented on September 25, 2024

Thank you for opening your first issue in this project! Engagement like this is essential for open source projects! πŸ€—

If you haven't done so already, check out Jupyter's Code of Conduct. Also, please try to follow the issue template as it helps other other community members to contribute more effectively.
welcome
You can meet the other Jovyans by joining our Discourse forum. There is also an intro thread there where you can stop by and say Hi! πŸ‘‹

Welcome to the Jupyter community! πŸŽ‰

from jupyter_server.

daeh avatar daeh commented on September 25, 2024

cont.

Troubleshoot Output
❯ jupyter troubleshoot
$PATH:
	~/software/anaconda3/envs/ve_iaa_pytorch/bin
	~/software/anaconda3/condabin
	~/software/texlive/bin/x86_64-linux
	~/software/node-v12.14.0-linux-x64/bin
	/cm/shared/openmind/gcc/11.1.0/bin
	/usr/lib64/qt-3.3/bin
	~/me/zsh/bin
	~/me/vim/bin
	~/me/tmux/bin
	~/me/git/bin
	/usr/local/bin
	/usr/bin
	~/bin
	/usr/local/sbin
	/usr/sbin

sys.path:
~/software/anaconda3/envs/ve_iaa_pytorch/bin
~/software/anaconda3/envs/ve_iaa_pytorch/lib/python310.zip
~/software/anaconda3/envs/ve_iaa_pytorch/lib/python3.10
~/software/anaconda3/envs/ve_iaa_pytorch/lib/python3.10/lib-dynload
~/software/anaconda3/envs/ve_iaa_pytorch/lib/python3.10/site-packages

sys.executable:
~/software/anaconda3/envs/ve_iaa_pytorch/bin/python

sys.version:
3.10.9 | packaged by conda-forge | (main, Feb 2 2023, 20:20:04) [GCC 11.3.0]

platform.platform():
Linux-3.10.0-1062.el7.x86_64-x86_64-with-glibc2.17

which -a jupyter:
~/software/anaconda3/envs/ve_iaa_pytorch/bin/jupyter

pip list:
Package Version
----------------------------- -----------
aiofiles 22.1.0
aiosqlite 0.18.0
anyio 3.6.2
argon2-cffi 21.3.0
argon2-cffi-bindings 21.2.0
asttokens 2.2.1
attrs 22.2.0
autopep8 2.0.2
Babel 2.12.1
backcall 0.2.0
backports.functools-lru-cache 1.6.4
beautifulsoup4 4.11.2
bleach 6.0.0
brotlipy 0.7.0
certifi 2022.12.7
cffi 1.15.1
charset-normalizer 2.1.1
colorama 0.4.6
comm 0.1.2
contourpy 1.0.7
cryptography 39.0.2
cycler 0.11.0
debugpy 1.6.6
decorator 5.1.1
defusedxml 0.7.1
dill 0.3.6
entrypoints 0.4
executing 1.2.0
fastjsonschema 2.16.3
flit_core 3.8.0
fonttools 4.39.0
idna 3.4
importlib-metadata 6.0.0
importlib-resources 5.12.0
ipykernel 6.21.3
ipython 8.11.0
ipython-genutils 0.2.0
jedi 0.18.2
Jinja2 3.1.2
joblib 1.2.0
json5 0.9.5
jsonschema 4.17.3
jupyter_client 8.0.3
jupyter_core 5.2.0
jupyter-events 0.6.3
jupyter_server 2.4.0
jupyter_server_fileid 0.8.0
jupyter_server_terminals 0.4.4
jupyter_server_ydoc 0.6.1
jupyter-ydoc 0.2.2
jupyterlab 3.6.1
jupyterlab-pygments 0.2.2
jupyterlab_server 2.20.0
kiwisolver 1.4.4
libtmux 0.21.0
MarkupSafe 2.1.2
matplotlib 3.7.1
matplotlib-inline 0.1.6
mistune 2.0.5
munkres 1.1.4
nbclassic 0.5.3
nbclient 0.7.2
nbconvert 7.2.9
nbformat 5.7.3
nest-asyncio 1.5.6
notebook 6.5.3
notebook_shim 0.2.2
numpy 1.24.2
packaging 23.0
pandas 1.5.3
pandocfilters 1.5.0
parso 0.8.3
patsy 0.5.3
pexpect 4.8.0
pickleshare 0.7.5
Pillow 9.4.0
pip 23.0.1
pkgutil_resolve_name 1.3.10
platformdirs 3.1.1
pooch 1.7.0
prometheus-client 0.16.0
prompt-toolkit 3.0.38
psutil 5.9.4
ptyprocess 0.7.0
pure-eval 0.2.2
pycodestyle 2.10.0
pycparser 2.21
Pygments 2.14.0
pyOpenSSL 23.0.0
pyparsing 3.0.9
pyrsistent 0.19.3
PySocks 1.7.1
python-dateutil 2.8.2
python-json-logger 2.0.7
pytz 2022.7.1
PyYAML 6.0
pyzmq 25.0.0
requests 2.28.2
rfc3339-validator 0.1.4
rfc3986-validator 0.1.1
scikit-learn 1.2.2
scipy 1.10.1
seaborn 0.12.2
Send2Trash 1.8.0
setuptools 67.6.0
six 1.16.0
sniffio 1.3.0
soupsieve 2.3.2.post1
stack-data 0.6.2
statsmodels 0.13.5
terminado 0.17.1
threadpoolctl 3.1.0
tinycss2 1.2.1
tmuxp 1.27.0
tomli 2.0.1
torch 1.13.1
tornado 6.2
traitlets 5.9.0
typing_extensions 4.5.0
unicodedata2 15.0.0
urllib3 1.26.15
wcwidth 0.2.6
webencodings 0.5.1
websocket-client 1.5.1
wheel 0.38.4
y-py 0.5.9
ypy-websocket 0.8.2
zipp 3.15.0

conda list:
# packages in environment at ~/software/anaconda3/envs/ve_iaa_pytorch:
#
# Name Version Build Channel
_libgcc_mutex 0.1 conda_forge conda-forge
_openmp_mutex 4.5 2_kmp_llvm conda-forge
aiofiles 22.1.0 pyhd8ed1ab_0 conda-forge
aiosqlite 0.18.0 pyhd8ed1ab_0 conda-forge
anyio 3.6.2 pyhd8ed1ab_0 conda-forge
argon2-cffi 21.3.0 pyhd8ed1ab_0 conda-forge
argon2-cffi-bindings 21.2.0 py310h5764c6d_3 conda-forge
asttokens 2.2.1 pyhd8ed1ab_0 conda-forge
attrs 22.2.0 pyh71513ae_0 conda-forge
autopep8 2.0.2 pyhd8ed1ab_0 conda-forge
babel 2.12.1 pyhd8ed1ab_1 conda-forge
backcall 0.2.0 pyh9f0ad1d_0 conda-forge
backports 1.0 pyhd8ed1ab_3 conda-forge
backports.functools_lru_cache 1.6.4 pyhd8ed1ab_0 conda-forge
beautifulsoup4 4.11.2 pyha770c72_0 conda-forge
blas 2.116 mkl conda-forge
blas-devel 3.9.0 16_linux64_mkl conda-forge
bleach 6.0.0 pyhd8ed1ab_0 conda-forge
brotli 1.0.9 h166bdaf_8 conda-forge
brotli-bin 1.0.9 h166bdaf_8 conda-forge
brotlipy 0.7.0 py310h5764c6d_1005 conda-forge
bzip2 1.0.8 h7f98852_4 conda-forge
ca-certificates 2022.12.7 ha878542_0 conda-forge
certifi 2022.12.7 pyhd8ed1ab_0 conda-forge
cffi 1.15.1 py310h255011f_3 conda-forge
charset-normalizer 2.1.1 pyhd8ed1ab_0 conda-forge
colorama 0.4.6 pypi_0 pypi
comm 0.1.2 pyhd8ed1ab_0 conda-forge
contourpy 1.0.7 py310hdf3cbec_0 conda-forge
cryptography 39.0.2 py310h34c0648_0 conda-forge
cycler 0.11.0 pyhd8ed1ab_0 conda-forge
debugpy 1.6.6 py310heca2aa9_0 conda-forge
decorator 5.1.1 pyhd8ed1ab_0 conda-forge
defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge
dill 0.3.6 pyhd8ed1ab_1 conda-forge
entrypoints 0.4 pyhd8ed1ab_0 conda-forge
executing 1.2.0 pyhd8ed1ab_0 conda-forge
flit-core 3.8.0 pyhd8ed1ab_0 conda-forge
fonttools 4.39.0 py310h1fa729e_0 conda-forge
freetype 2.12.1 hca18f0e_1 conda-forge
icu 70.1 h27087fc_0 conda-forge
idna 3.4 pyhd8ed1ab_0 conda-forge
importlib-metadata 6.0.0 pyha770c72_0 conda-forge
importlib_metadata 6.0.0 hd8ed1ab_0 conda-forge
importlib_resources 5.12.0 pyhd8ed1ab_0 conda-forge
ipykernel 6.21.3 pyh210e3f2_0 conda-forge
ipython 8.11.0 pyh41d4057_0 conda-forge
ipython_genutils 0.2.0 py_1 conda-forge
jedi 0.18.2 pyhd8ed1ab_0 conda-forge
jinja2 3.1.2 pyhd8ed1ab_1 conda-forge
joblib 1.2.0 pyhd8ed1ab_0 conda-forge
json5 0.9.5 pyh9f0ad1d_0 conda-forge
jsonschema 4.17.3 pyhd8ed1ab_0 conda-forge
jupyter_client 8.0.3 pyhd8ed1ab_0 conda-forge
jupyter_core 5.2.0 py310hff52083_0 conda-forge
jupyter_events 0.6.3 pyhd8ed1ab_0 conda-forge
jupyter_server 2.4.0 pyhd8ed1ab_0 conda-forge
jupyter_server_fileid 0.8.0 pyhd8ed1ab_0 conda-forge
jupyter_server_terminals 0.4.4 pyhd8ed1ab_1 conda-forge
jupyter_server_ydoc 0.6.1 pyhd8ed1ab_0 conda-forge
jupyter_ydoc 0.2.2 pyhd8ed1ab_0 conda-forge
jupyterlab 3.6.1 pyhd8ed1ab_0 conda-forge
jupyterlab_pygments 0.2.2 pyhd8ed1ab_0 conda-forge
jupyterlab_server 2.20.0 pyhd8ed1ab_0 conda-forge
kiwisolver 1.4.4 py310hbf28c38_1 conda-forge
lcms2 2.15 haa2dc70_1 conda-forge
ld_impl_linux-64 2.40 h41732ed_0 conda-forge
lerc 4.0.0 h27087fc_0 conda-forge
libblas 3.9.0 16_linux64_mkl conda-forge
libbrotlicommon 1.0.9 h166bdaf_8 conda-forge
libbrotlidec 1.0.9 h166bdaf_8 conda-forge
libbrotlienc 1.0.9 h166bdaf_8 conda-forge
libcblas 3.9.0 16_linux64_mkl conda-forge
libdeflate 1.17 h0b41bf4_0 conda-forge
libffi 3.4.2 h7f98852_5 conda-forge
libgcc-ng 12.2.0 h65d4601_19 conda-forge
libgfortran-ng 12.2.0 h69a702a_19 conda-forge
libgfortran5 12.2.0 h337968e_19 conda-forge
libhwloc 2.9.0 hd6dc26d_0 conda-forge
libiconv 1.17 h166bdaf_0 conda-forge
libjpeg-turbo 2.1.5.1 h0b41bf4_0 conda-forge
liblapack 3.9.0 16_linux64_mkl conda-forge
liblapacke 3.9.0 16_linux64_mkl conda-forge
libnsl 2.0.0 h7f98852_0 conda-forge
libpng 1.6.39 h753d276_0 conda-forge
libsodium 1.0.18 h36c2ea0_1 conda-forge
libsqlite 3.40.0 h753d276_0 conda-forge
libstdcxx-ng 12.2.0 h46fd767_19 conda-forge
libtiff 4.5.0 hddfeb54_5 conda-forge
libtmux 0.21.0 pypi_0 pypi
libuuid 2.32.1 h7f98852_1000 conda-forge
libwebp-base 1.3.0 h0b41bf4_0 conda-forge
libxcb 1.13 h7f98852_1004 conda-forge
libxml2 2.10.3 h7463322_0 conda-forge
libzlib 1.2.13 h166bdaf_4 conda-forge
llvm-openmp 15.0.7 h0cdce71_0 conda-forge
markupsafe 2.1.2 py310h1fa729e_0 conda-forge
matplotlib-base 3.7.1 py310he60537e_0 conda-forge
matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge
mistune 2.0.5 pyhd8ed1ab_0 conda-forge
mkl 2022.1.0 h84fe81f_915 conda-forge
mkl-devel 2022.1.0 ha770c72_916 conda-forge
mkl-include 2022.1.0 h84fe81f_915 conda-forge
munkres 1.1.4 pyh9f0ad1d_0 conda-forge
nbclassic 0.5.3 pyhb4ecaf3_3 conda-forge
nbclient 0.7.2 pyhd8ed1ab_0 conda-forge
nbconvert 7.2.9 pyhd8ed1ab_0 conda-forge
nbconvert-core 7.2.9 pyhd8ed1ab_0 conda-forge
nbconvert-pandoc 7.2.9 pyhd8ed1ab_0 conda-forge
nbformat 5.7.3 pyhd8ed1ab_0 conda-forge
ncurses 6.3 h27087fc_1 conda-forge
nest-asyncio 1.5.6 pyhd8ed1ab_0 conda-forge
notebook 6.5.3 pyha770c72_0 conda-forge
notebook-shim 0.2.2 pyhd8ed1ab_0 conda-forge
numpy 1.24.2 py310h8deb116_0 conda-forge
openjpeg 2.5.0 hfec8fc6_2 conda-forge
openssl 3.0.8 h0b41bf4_0 conda-forge
packaging 23.0 pyhd8ed1ab_0 conda-forge
pandas 1.5.3 py310h9b08913_0 conda-forge
pandoc 2.19.2 h32600fe_2 conda-forge
pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge
parso 0.8.3 pyhd8ed1ab_0 conda-forge
patsy 0.5.3 pyhd8ed1ab_0 conda-forge
pexpect 4.8.0 pyh1a96a4e_2 conda-forge
pickleshare 0.7.5 py_1003 conda-forge
pillow 9.4.0 py310h065c6d2_2 conda-forge
pip 23.0.1 pyhd8ed1ab_0 conda-forge
pkgutil-resolve-name 1.3.10 pyhd8ed1ab_0 conda-forge
platformdirs 3.1.1 pyhd8ed1ab_0 conda-forge
pooch 1.7.0 pyhd8ed1ab_0 conda-forge
prometheus_client 0.16.0 pyhd8ed1ab_0 conda-forge
prompt-toolkit 3.0.38 pyha770c72_0 conda-forge
prompt_toolkit 3.0.38 hd8ed1ab_0 conda-forge
psutil 5.9.4 py310h5764c6d_0 conda-forge
pthread-stubs 0.4 h36c2ea0_1001 conda-forge
ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge
pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge
pycodestyle 2.10.0 pyhd8ed1ab_0 conda-forge
pycparser 2.21 pyhd8ed1ab_0 conda-forge
pygments 2.14.0 pyhd8ed1ab_0 conda-forge
pyopenssl 23.0.0 pyhd8ed1ab_0 conda-forge
pyparsing 3.0.9 pyhd8ed1ab_0 conda-forge
pyrsistent 0.19.3 py310h1fa729e_0 conda-forge
pysocks 1.7.1 pyha2e5f31_6 conda-forge
python 3.10.9 he550d4f_0_cpython conda-forge
python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge
python-fastjsonschema 2.16.3 pyhd8ed1ab_0 conda-forge
python-json-logger 2.0.7 pyhd8ed1ab_0 conda-forge
python_abi 3.10 3_cp310 conda-forge
pytorch 1.13.1 py3.10_cpu_0 pytorch
pytorch-mutex 1.0 cpu pytorch
pytz 2022.7.1 pyhd8ed1ab_0 conda-forge
pyyaml 6.0 py310h5764c6d_5 conda-forge
pyzmq 25.0.0 py310h059b190_0 conda-forge
readline 8.1.2 h0f457ee_0 conda-forge
requests 2.28.2 pyhd8ed1ab_0 conda-forge
rfc3339-validator 0.1.4 pyhd8ed1ab_0 conda-forge
rfc3986-validator 0.1.1 pyh9f0ad1d_0 conda-forge
scikit-learn 1.2.2 py310h209a8ca_0 conda-forge
scipy 1.10.1 py310h8deb116_0 conda-forge
seaborn 0.12.2 hd8ed1ab_0 conda-forge
seaborn-base 0.12.2 pyhd8ed1ab_0 conda-forge
send2trash 1.8.0 pyhd8ed1ab_0 conda-forge
setuptools 67.6.0 pyhd8ed1ab_0 conda-forge
six 1.16.0 pyh6c4a22f_0 conda-forge
sniffio 1.3.0 pyhd8ed1ab_0 conda-forge
soupsieve 2.3.2.post1 pyhd8ed1ab_0 conda-forge
stack_data 0.6.2 pyhd8ed1ab_0 conda-forge
statsmodels 0.13.5 py310hde88566_2 conda-forge
tbb 2021.8.0 hf52228f_0 conda-forge
terminado 0.17.1 pyh41d4057_0 conda-forge
threadpoolctl 3.1.0 pyh8a188c0_0 conda-forge
tinycss2 1.2.1 pyhd8ed1ab_0 conda-forge
tk 8.6.12 h27826a3_0 conda-forge
tmuxp 1.27.0 pypi_0 pypi
tomli 2.0.1 pyhd8ed1ab_0 conda-forge
tornado 6.2 py310h5764c6d_1 conda-forge
traitlets 5.9.0 pyhd8ed1ab_0 conda-forge
typing-extensions 4.5.0 hd8ed1ab_0 conda-forge
typing_extensions 4.5.0 pyha770c72_0 conda-forge
tzdata 2022g h191b570_0 conda-forge
unicodedata2 15.0.0 py310h5764c6d_0 conda-forge
urllib3 1.26.15 pyhd8ed1ab_0 conda-forge
wcwidth 0.2.6 pyhd8ed1ab_0 conda-forge
webencodings 0.5.1 py_1 conda-forge
websocket-client 1.5.1 pyhd8ed1ab_0 conda-forge
wheel 0.38.4 pyhd8ed1ab_0 conda-forge
xorg-libxau 1.0.9 h7f98852_0 conda-forge
xorg-libxdmcp 1.1.3 h7f98852_0 conda-forge
xz 5.2.6 h166bdaf_0 conda-forge
y-py 0.5.9 py310h4426083_0 conda-forge
yaml 0.2.5 h7f98852_2 conda-forge
ypy-websocket 0.8.2 pyhd8ed1ab_0 conda-forge
zeromq 4.3.4 h9c3ff4c_1 conda-forge
zipp 3.15.0 pyhd8ed1ab_0 conda-forge
zstd 1.5.2 h3eb15da_6 conda-forge

conda env:
name: ve_iaa_pytorch
channels:
- pytorch
- conda-forge
- defaults
dependencies:
- _libgcc_mutex=0.1=conda_forge
- _openmp_mutex=4.5=2_kmp_llvm
- aiofiles=22.1.0=pyhd8ed1ab_0
- aiosqlite=0.18.0=pyhd8ed1ab_0
- anyio=3.6.2=pyhd8ed1ab_0
- argon2-cffi=21.3.0=pyhd8ed1ab_0
- argon2-cffi-bindings=21.2.0=py310h5764c6d_3
- asttokens=2.2.1=pyhd8ed1ab_0
- attrs=22.2.0=pyh71513ae_0
- autopep8=2.0.2=pyhd8ed1ab_0
- babel=2.12.1=pyhd8ed1ab_1
- backcall=0.2.0=pyh9f0ad1d_0
- backports=1.0=pyhd8ed1ab_3
- backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0
- beautifulsoup4=4.11.2=pyha770c72_0
- blas=2.116=mkl
- blas-devel=3.9.0=16_linux64_mkl
- bleach=6.0.0=pyhd8ed1ab_0
- brotli=1.0.9=h166bdaf_8
- brotli-bin=1.0.9=h166bdaf_8
- brotlipy=0.7.0=py310h5764c6d_1005
- bzip2=1.0.8=h7f98852_4
- ca-certificates=2022.12.7=ha878542_0
- certifi=2022.12.7=pyhd8ed1ab_0
- cffi=1.15.1=py310h255011f_3
- charset-normalizer=2.1.1=pyhd8ed1ab_0
- comm=0.1.2=pyhd8ed1ab_0
- contourpy=1.0.7=py310hdf3cbec_0
- cryptography=39.0.2=py310h34c0648_0
- cycler=0.11.0=pyhd8ed1ab_0
- debugpy=1.6.6=py310heca2aa9_0
- decorator=5.1.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- dill=0.3.6=pyhd8ed1ab_1
- entrypoints=0.4=pyhd8ed1ab_0
- executing=1.2.0=pyhd8ed1ab_0
- flit-core=3.8.0=pyhd8ed1ab_0
- fonttools=4.39.0=py310h1fa729e_0
- freetype=2.12.1=hca18f0e_1
- icu=70.1=h27087fc_0
- idna=3.4=pyhd8ed1ab_0
- importlib-metadata=6.0.0=pyha770c72_0
- importlib_metadata=6.0.0=hd8ed1ab_0
- importlib_resources=5.12.0=pyhd8ed1ab_0
- ipykernel=6.21.3=pyh210e3f2_0
- ipython=8.11.0=pyh41d4057_0
- ipython_genutils=0.2.0=py_1
- jedi=0.18.2=pyhd8ed1ab_0
- jinja2=3.1.2=pyhd8ed1ab_1
- joblib=1.2.0=pyhd8ed1ab_0
- json5=0.9.5=pyh9f0ad1d_0
- jsonschema=4.17.3=pyhd8ed1ab_0
- jupyter_client=8.0.3=pyhd8ed1ab_0
- jupyter_core=5.2.0=py310hff52083_0
- jupyter_events=0.6.3=pyhd8ed1ab_0
- jupyter_server=2.4.0=pyhd8ed1ab_0
- jupyter_server_fileid=0.8.0=pyhd8ed1ab_0
- jupyter_server_terminals=0.4.4=pyhd8ed1ab_1
- jupyter_server_ydoc=0.6.1=pyhd8ed1ab_0
- jupyter_ydoc=0.2.2=pyhd8ed1ab_0
- jupyterlab=3.6.1=pyhd8ed1ab_0
- jupyterlab_pygments=0.2.2=pyhd8ed1ab_0
- jupyterlab_server=2.20.0=pyhd8ed1ab_0
- kiwisolver=1.4.4=py310hbf28c38_1
- lcms2=2.15=haa2dc70_1
- ld_impl_linux-64=2.40=h41732ed_0
- lerc=4.0.0=h27087fc_0
- libblas=3.9.0=16_linux64_mkl
- libbrotlicommon=1.0.9=h166bdaf_8
- libbrotlidec=1.0.9=h166bdaf_8
- libbrotlienc=1.0.9=h166bdaf_8
- libcblas=3.9.0=16_linux64_mkl
- libdeflate=1.17=h0b41bf4_0
- libffi=3.4.2=h7f98852_5
- libgcc-ng=12.2.0=h65d4601_19
- libgfortran-ng=12.2.0=h69a702a_19
- libgfortran5=12.2.0=h337968e_19
- libhwloc=2.9.0=hd6dc26d_0
- libiconv=1.17=h166bdaf_0
- libjpeg-turbo=2.1.5.1=h0b41bf4_0
- liblapack=3.9.0=16_linux64_mkl
- liblapacke=3.9.0=16_linux64_mkl
- libnsl=2.0.0=h7f98852_0
- libpng=1.6.39=h753d276_0
- libsodium=1.0.18=h36c2ea0_1
- libsqlite=3.40.0=h753d276_0
- libstdcxx-ng=12.2.0=h46fd767_19
- libtiff=4.5.0=hddfeb54_5
- libuuid=2.32.1=h7f98852_1000
- libwebp-base=1.3.0=h0b41bf4_0
- libxcb=1.13=h7f98852_1004
- libxml2=2.10.3=h7463322_0
- libzlib=1.2.13=h166bdaf_4
- llvm-openmp=15.0.7=h0cdce71_0
- markupsafe=2.1.2=py310h1fa729e_0
- matplotlib-base=3.7.1=py310he60537e_0
- matplotlib-inline=0.1.6=pyhd8ed1ab_0
- mistune=2.0.5=pyhd8ed1ab_0
- mkl=2022.1.0=h84fe81f_915
- mkl-devel=2022.1.0=ha770c72_916
- mkl-include=2022.1.0=h84fe81f_915
- munkres=1.1.4=pyh9f0ad1d_0
- nbclassic=0.5.3=pyhb4ecaf3_3
- nbclient=0.7.2=pyhd8ed1ab_0
- nbconvert=7.2.9=pyhd8ed1ab_0
- nbconvert-core=7.2.9=pyhd8ed1ab_0
- nbconvert-pandoc=7.2.9=pyhd8ed1ab_0
- nbformat=5.7.3=pyhd8ed1ab_0
- ncurses=6.3=h27087fc_1
- nest-asyncio=1.5.6=pyhd8ed1ab_0
- notebook=6.5.3=pyha770c72_0
- notebook-shim=0.2.2=pyhd8ed1ab_0
- numpy=1.24.2=py310h8deb116_0
- openjpeg=2.5.0=hfec8fc6_2
- openssl=3.0.8=h0b41bf4_0
- packaging=23.0=pyhd8ed1ab_0
- pandas=1.5.3=py310h9b08913_0
- pandoc=2.19.2=h32600fe_2
- pandocfilters=1.5.0=pyhd8ed1ab_0
- parso=0.8.3=pyhd8ed1ab_0
- patsy=0.5.3=pyhd8ed1ab_0
- pexpect=4.8.0=pyh1a96a4e_2
- pickleshare=0.7.5=py_1003
- pillow=9.4.0=py310h065c6d2_2
- pip=23.0.1=pyhd8ed1ab_0
- pkgutil-resolve-name=1.3.10=pyhd8ed1ab_0
- platformdirs=3.1.1=pyhd8ed1ab_0
- pooch=1.7.0=pyhd8ed1ab_0
- prometheus_client=0.16.0=pyhd8ed1ab_0
- prompt-toolkit=3.0.38=pyha770c72_0
- prompt_toolkit=3.0.38=hd8ed1ab_0
- psutil=5.9.4=py310h5764c6d_0
- pthread-stubs=0.4=h36c2ea0_1001
- ptyprocess=0.7.0=pyhd3deb0d_0
- pure_eval=0.2.2=pyhd8ed1ab_0
- pycodestyle=2.10.0=pyhd8ed1ab_0
- pycparser=2.21=pyhd8ed1ab_0
- pygments=2.14.0=pyhd8ed1ab_0
- pyopenssl=23.0.0=pyhd8ed1ab_0
- pyparsing=3.0.9=pyhd8ed1ab_0
- pyrsistent=0.19.3=py310h1fa729e_0
- pysocks=1.7.1=pyha2e5f31_6
- python=3.10.9=he550d4f_0_cpython
- python-dateutil=2.8.2=pyhd8ed1ab_0
- python-fastjsonschema=2.16.3=pyhd8ed1ab_0
- python-json-logger=2.0.7=pyhd8ed1ab_0
- python_abi=3.10=3_cp310
- pytorch=1.13.1=py3.10_cpu_0
- pytorch-mutex=1.0=cpu
- pytz=2022.7.1=pyhd8ed1ab_0
- pyyaml=6.0=py310h5764c6d_5
- pyzmq=25.0.0=py310h059b190_0
- readline=8.1.2=h0f457ee_0
- requests=2.28.2=pyhd8ed1ab_0
- rfc3339-validator=0.1.4=pyhd8ed1ab_0
- rfc3986-validator=0.1.1=pyh9f0ad1d_0
- scikit-learn=1.2.2=py310h209a8ca_0
- scipy=1.10.1=py310h8deb116_0
- seaborn=0.12.2=hd8ed1ab_0
- seaborn-base=0.12.2=pyhd8ed1ab_0
- send2trash=1.8.0=pyhd8ed1ab_0
- setuptools=67.6.0=pyhd8ed1ab_0
- six=1.16.0=pyh6c4a22f_0
- sniffio=1.3.0=pyhd8ed1ab_0
- soupsieve=2.3.2.post1=pyhd8ed1ab_0
- stack_data=0.6.2=pyhd8ed1ab_0
- statsmodels=0.13.5=py310hde88566_2
- tbb=2021.8.0=hf52228f_0
- terminado=0.17.1=pyh41d4057_0
- threadpoolctl=3.1.0=pyh8a188c0_0
- tinycss2=1.2.1=pyhd8ed1ab_0
- tk=8.6.12=h27826a3_0
- tomli=2.0.1=pyhd8ed1ab_0
- tornado=6.2=py310h5764c6d_1
- traitlets=5.9.0=pyhd8ed1ab_0
- typing-extensions=4.5.0=hd8ed1ab_0
- typing_extensions=4.5.0=pyha770c72_0
- tzdata=2022g=h191b570_0
- unicodedata2=15.0.0=py310h5764c6d_0
- urllib3=1.26.15=pyhd8ed1ab_0
- wcwidth=0.2.6=pyhd8ed1ab_0
- webencodings=0.5.1=py_1
- websocket-client=1.5.1=pyhd8ed1ab_0
- wheel=0.38.4=pyhd8ed1ab_0
- xorg-libxau=1.0.9=h7f98852_0
- xorg-libxdmcp=1.1.3=h7f98852_0
- xz=5.2.6=h166bdaf_0
- y-py=0.5.9=py310h4426083_0
- yaml=0.2.5=h7f98852_2
- ypy-websocket=0.8.2=pyhd8ed1ab_0
- zeromq=4.3.4=h9c3ff4c_1
- zipp=3.15.0=pyhd8ed1ab_0
- zstd=1.5.2=h3eb15da_6
- pip:
- colorama==0.4.6
- libtmux==0.21.0
- tmuxp==1.27.0
prefix: ~/software/anaconda3/envs/ve_iaa_pytorch

from jupyter_server.

ahlag avatar ahlag commented on September 25, 2024

@daeh
Is there a fix for this?

from jupyter_server.

evalieungh avatar evalieungh commented on September 25, 2024

Hi! In the stackoverflow question, someone suggested setting LAB_TOKEN="test".
I just tried changing --LabApp.token='' to --LabApp.token='test' in my Dockerfile and then re-build the Jupyter container with docker-compose up --build, and it seems to fix the problem!

from jupyter_server.

youurayy avatar youurayy commented on September 25, 2024

Use jupyter-notebook command instead of jupyter-server to provide the remote API.

The jupyter-server/ VSCode Jupyter connectivity is horribly broken.
The latest versions I found which worked:

  • jupyter-server: 1.23.6
  • VSCode Jupyter extension: 2022.6.1001890150 (worked on VSCode 1.77.0)

Notes:

  • It may be good to rm -rf ~/.ipython ~/.jupyter when experimenting with the server-side versions.
  • My client platform is latest OSX/arm Ventura 13.2.1, server is Ubuntu Server 22.10 x86_64.
  • The way to setup a remote Jupyter connection in VSCode 1.77.0 and Jupyter extension version 2023.3.1000892223:
    1. select "Existing Jupyter Server" and enter the URL
    2. restart VSCode
    3. select "Existing Jupyter Server" and select the previously entered server (which now has a visible entry)

from jupyter_server.

hbcarlos avatar hbcarlos commented on September 25, 2024

Hi everyone! Sorry for not getting back to you sooner.

Jupyter-Server v1 was a stateless single-user server. With the introduction of real-time collaboration in JupyterLab, we needed to track different users connecting to the same instance. For this reason, in Jupyter-Server v2, we introduced a new identity API. This identity API was designed to enable third-party extensions to swap the IdentityProvider.

The default implementation of Jupyter-Server is a stateless single-user server yet. With the default authorization, you can configure the server to use a password or a token, but it is the same for every user. Furthermore, since this is a stateless server, the default implementation of the identity provider uses cookies to track sessions, assuming every new session is a different user and generating random anonymous user identities. You can find more information here.

If you are using the default implementation, every time a client connects (either using a password or token authentication), we check whether there is a cookie with a user identity. If the cookie is absent, we generate a new random identity for that client and store it in a cookie.

To avoid generating a new user for each request, you must habilitate cookies in your client. I'm not entirely sure, but VS code might have a flag to enable cookies for remote sessions.

from jupyter_server.

daeh avatar daeh commented on September 25, 2024

thanks for the detailed explainer, @hbcarlos

Am I interpreting this right --- that you don't see a fix for anon token-auth coming from jupyter-server? Rather you're advising us to take the issue up with VS Code?

from jupyter_server.

hbcarlos avatar hbcarlos commented on September 25, 2024

Am I interpreting this right --- that you don't see a fix for anon token-auth coming from jupyter-server? Rather you're advising us to take the issue up with VS Code?

Hi @daeh. I'm sorry for not getting back to you sooner. I'm very busy at the moment.

It was not. Actually, I've been trying to reproduce the issue by following your description. Unfortunately, I'm not able to reproduce it. This is what I tried:

Attempt 1:

I used VSCode as a client to open a local notebook and connect to a remote kernel running on Jupyter Server on a different machine (the remote server is on the same network as my laptop).

  • Open an ssh connection with port forwarding into the server ssh -L 8888:192.168.1.2:8888 [email protected].
  • Launch Jupyter server in the remote machine jupyter-server --no-browser --port=8888 --ip="192.168.1.2"
  • Copy the URL with the token from the terminal
  • Use VSCode to open a local notebook
  • From VSCode, Select a kernel -> Existing Jupyter server -> enter URL to server -> http://127.0.0.1:8888/?token=<token>

This works as expected. It does not generate multiple users.

Attempt 2:

I connected to a JupyterLab instance in a remote server using ssh port forwarding.

  • Open an ssh connection with port forwarding into the server ssh -L 8888:192.168.1.2:8888 [email protected].
  • Launch JupyterLab in the remote machine jupyter-lab --no-browser
  • Copy the URL with the token from the terminal
  • Use the browser to connect to the JupyterLab instance using http://127.0.0.1:8888/?token=<token>

This works as expected. It does not generate multiple users.

I was using:
VSCode: 1.77.1
VSCode Jupyter extension: v2023.3.1201040234
Jupyter Server: 2.5.0
JupyterLab: 3.6.3

Can you confirm you are using the latest version of VSCode and VSCode Jupyter extension?

If that's the case, is your remote Jupyter server running under a proxy?

from jupyter_server.

echarles avatar echarles commented on September 25, 2024

I have tested on my vscode connecting a notebook to a running jupyter server and it looks working fine as a user (I can run the notebook cells). The server log show the following, is that expected?

[I 2023-04-13 16:53:16.962 ServerApp] Generating new user for token-authenticated request: ecac822e57df40bdb76a6ba2f69509db
[I 2023-04-13 16:53:22.015 ServerApp] Generating new user for token-authenticated request: 22024ab735fc4ea497b01add51435bfd
[I 2023-04-13 16:53:22.016 ServerApp] Generating new user for token-authenticated request: 50c7eaae6cb14dc4a1d4f026d19d8ca7
[I 2023-04-13 16:53:26.904 ServerApp] Generating new user for token-authenticated request: 059c6e773aee4c479983670e1f0c7294
[I 2023-04-13 16:53:26.967 ServerApp] Generating new user for token-authenticated request: e745099bf9ad410aab9ed2f9c6a8738a

from jupyter_server.

echarles avatar echarles commented on September 25, 2024

This previous has been run on VSCode Version: 1.76.2 (Universal) (Date: 2023-03-14T17:54:09.061Z (4 wks ago)) and jupyter server 2.6.0.dev0

from jupyter_server.

zthxxx avatar zthxxx commented on September 25, 2024

@hbcarlos

This is an issue with VSCode, not with Jupiter Server.

I think so, and report it to microsoft/vscode-jupyter#13345

from jupyter_server.

olevski avatar olevski commented on September 25, 2024

What is the name of the cookie that Jupyter Server sets to track sessions? I am running the server behind a proxy and some cookies are stripped by the proxy. So I want to make sure that these session cookies are not stripped and they go through.

I checked the links to the documentation and the cookie name is not mentioned as far as I can tell.

from jupyter_server.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.