Page.html中的Jupyterhub用户名参数

问题描述

我更改了Jupyterhub 0.96的TmpAuthenticator项目,并希望使用带有令牌参数的请求,例如http://192.168.123.3/research/hub/login?token=246810代码如下:

from traitlets import Bool
from tornado import gen

from jupyterhub.auth import Authenticator
from jupyterhub.handlers import BaseHandler
from jupyterhub.utils import url_path_join

class TmpAuthenticateHandler(BaseHandler):
"""
Handler for /login

Creates a new user with a random UUID,and auto starts their server
"""
def initialize(self,force_new_server,process_user):
    super().initialize()
    self.force_new_server = force_new_server
    self.process_user = process_user

@gen.coroutine
def get(self):
    raw_user = yield self.get_current_user()
    
        # username = str(uuid.uuid4())
        # username = self.get_argument("user")  
        username = self.get_argument("token")  
        raw_user = self.user_from_username(username)
        self.set_login_cookie(raw_user)
    user = yield gen.maybe_future(self.process_user(raw_user,self))
    self.redirect(self.get_next_url(user))

class TmpAuthenticator(Authenticator):
"""
JupyterHub Authenticator for use with tmpnb.org

When JupyterHub is configured to use this authenticator,visiting the home
page immediately logs the user in with a randomly generated UUID if they
are already not logged in,and spawns a server for them.
"""

auto_login = True
login_service = 'tmp'

force_new_server = Bool(
    True,help="""
    Stop the user's server and start a new one when visiting /hub/login

    When set to True,users going to /hub/login will *always* get a
    new single-user server. When set to False,they'll be
    redirected to their current session if one exists.
    """,config=True
)

def process_user(self,user,handler):
    """
    Do additional arbitrary things to the created user before spawn.

    user is a user object,and handler is a TmpAuthenticateHandler object

    Should return the new user object.

    This method can be a @tornado.gen.coroutine.

    Note: This is primarily for overriding in subclasses
    """
    return user

def get_handlers(self,app):
    # FIXME: How to do this better?
    extra_settings = {
        'force_new_server': self.force_new_server,'process_user': self.process_user

    }
    return [
        ('/login',TmpAuthenticateHandler,extra_settings)
    ]

def login_url(self,base_url):
    return url_path_join(base_url,'login')

如果我要添加一个导航器,并且链接是基本url +令牌(这是请求令牌参数),则该链接可以是带有令牌的请求。我知道可以通过使用jupyterhub使用的jinja来完成,而且我可以设计类似“ / beta?token = {token}”的链接。 我的问题是我如何在处理程序中传递或获取token参数,并在page.html中获取它?谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...