将会话ID添加到我的bokeh应用程序中确实会返回空白页

时间:2019-06-18 14:13:22

标签: python

我想将授权包括到我的Bokeh-Web应用程序中。 (该应用程序运行良好)。但是,如果我尝试通过会话ID:bokeh serve stocks --session-ids external-signed并将创建的密钥添加到http://localhost:5006/stocks/?bokeh-session-id=...来执行此操作,则会收到错误/消息:

bokeh serve stocks --session-ids external-signed
2019-06-18 15:57:24,923 Starting Bokeh server version 1.2.0 (running on Tornado 5.0.2)
2019-06-18 15:57:24,926 Bokeh app running at: 

http://localhost:5006/stocks

2019-06-18 15:57:24,926 Starting Bokeh server with process id: 29518

2019-06-18 15:57:36,811 403 GET /stocks (::1) 1.64ms

2019-06-18 15:57:46,800 200 GET /stocks/?my_key (::1) 417.40ms

2019-06-18 15:57:46,812 404 GET /stocks/static/css/bokeh.min.css?v=8a37df7874e86834c87075ee096f36b7 (::1) 1.14ms
2019-06-18 15:57:46,826 404 GET /stocks/static/js/bokeh-gl.min.js?v=237dac0049e0a21220ba02fa552173a1 (::1) 1.75ms
2019-06-18 15:57:46,829 404 GET /stocks/static/css/bokeh-widgets.min.css?v=5fb15c2fc1344abfe5fa3615a34beae7 (::1) 1.10ms
2019-06-18 15:57:46,834 404 GET /stocks/static/css/bokeh-tables.min.css?v=69a9e725f277a6c569c9261b8ffe50eb (::1) 4.46ms
2019-06-18 15:57:46,836 404 GET /stocks/static/js/bokeh.min.js?v=1bfbafacfa847bc6589a4af73a904fef (::1) 1.29ms
2019-06-18 15:57:46,838 404 GET /stocks/static/js/bokeh-widgets.min.js?v=d568632a768b6d5e0dcc8c423778d737 (::1) 0.98ms
2019-06-18 15:57:46,840 404 GET /stocks/static/js/bokeh-tables.min.js?v=e840bf73f9fef1bffb5540a1aab13c0d (::1) 1.55ms
2019-06-18 15:57:46,854 404 GET /stocks/static/js/bokeh-gl.min.js?v=237dac0049e0a21220ba02fa552173a1 (::1) 2.11ms

1 个答案:

答案 0 :(得分:0)

目前尚不清楚您最终要完成什么。签名的会话确实适用于要将Bokeh服务器应用程序嵌入另一个Web应用程序,但又希望限制会话创建的情况。通常,您将启动类似于以下内容的Bokeh服务器:

BOKEH_SECRET_KEY=`bokeh secret` bokeh serve --session-ids external-signed --show app.py

然后在要嵌入Bokeh服务器应用程序的其他Web应用程序中(但仅在您签名会话ID时才允许打开会话),您将执行以下操作:

from bokeh.util.session_id import generate_session_id

script = server_session(
    url='http://111.222.333.444/app', 
    session_id=generate_session_id()
)
return render_template("embed.html", script=script, template="Flask")

请注意,另一个嵌入Bokeh服务器应用程序的应用程序将需要相同的BOKEH_SECRET_KEY集,以便generate_session_id能够创建ID,该Bokeh服务器将实际成功地验证会话ID。

在出现问题的情况下,可能需要明确提及:ID必须使用BOKEH_SECRET_KEY进行加密签名,它不能只是您选择的任意随机值。目的是将会话创建仅限于知道密钥的授权Web应用程序。