我已根据官方 Dash-Auth docs 将身份验证功能合并到我的代码中。该应用程序将托管在 heroku 上。发生了一些事情(代码如下):
app = dash.Dash('app',server=server)
app = dash.Dash('auth')
auth = dash_auth.BasicAuth(
app,
(('abcde','1234',),)
)
在本地,身份验证工作完美无缺,除非您 登录应用程序,它将登录信息保存为 cookie。因此,如果你 会刷新页面或可能将链接粘贴到新窗口 不会再次询问登录信息,除非您清除您的信息 浏览器中的 cookies。
一旦应用程序被推送到heroku master,它就会成功部署 不幸的是,由于应用程序错误,该应用程序无法打开。 检查 Heroku 日志时,显示的错误如下。如果本地托管,则不会显示此错误。
'TypeError: 'type' object is not subscriptable '.
根据 post我已经删除了 dash.ly,所以我确信该错误与它无关。根据这个post在第8条评论左右有人提出登录问题,但回复不明确。
UPDATE1
:我相信 app = dash.Dash('app',server=server)
和 app = dash.Dash('auth')
之间存在冲突> 从我删除代码的那一刻起,
app = dash.Dash('auth')
auth = dash_auth.BasicAuth(
app,
(('abcde','1234',),)
)
即使部署到 Heroku 后,该应用程序似乎也运行良好。
最佳答案
尝试以下三点:
将应用程序的名称“auth”更改为 __name__
app = dash.Dash(__name__)
不要调用 dash.Dash() 函数 2 次。更改此:
app = dash.Dash('app',server=server)
app = dash.Dash('auth')
auth = dash_auth.BasicAuth(
app,
(('abcde','1234',),)
)
对此:
app = dash.Dash(__name__,server=server)
auth = dash_auth.BasicAuth(
app,
(('abcde','1234',),)
)
从密码对中删除最后 2 个逗号。那么就会是这样的:
app = dash.Dash(__name__,server=server)
auth = dash_auth.BasicAuth(
app,
(('abcde','1234'))
)
关于python - Dash-Plotly 应用程序身份验证 - 登录详细信息保存为 Cookie/Heroku 托管 'Type' 对象错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51191353/