我已根据官方Dash-Auth docs将身份验证功能集成到我的代码中。该应用程序将托管在heroku上。发生了几件事(代码在下面):
app = dash.Dash('app',server=server)
app = dash.Dash('auth')
auth = dash_auth.BasicAuth(
app,
(('abcde','1234',),)
)
在本地,身份验证工作正常,除非您一次 登录到应用程序,它将登录信息另存为cookie。因此,如果你 会刷新页面或将链接粘贴到新窗口中 除非您清除您的身份,否则不会再次询问登录信息 浏览器中的Cookie。
将应用程序推送到heroku主服务器后,它将成功部署 不幸的是,由于应用程序错误,该应用程序无法打开。 在检查heroku日志时,显示的错误如下。如果是本地托管,则不会显示此错误。
'TypeError:'类型'对象不可下标'。
根据post,我已删除dash.ly,以确保该错误与该错误无关。根据围绕第8条评论的post,有人提出了登录问题,但答复并不明确。
UPDATE1
:自从删除代码后,我相信app = dash.Dash('app',server=server)
和app = dash.Dash('auth')
之间存在冲突,
app = dash.Dash('auth')
auth = dash_auth.BasicAuth(
app,
(('abcde','1234',),)
)
即使将其部署到heroku后,该应用程序似乎仍可以正常运行。
答案 0 :(得分:0)
尝试以下3点:
将应用程序“ auth”的名称更改为__name__
app = dash.Dash(__name__)
请勿两次调用dash.Dash()函数。更改此:
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',),)
)
从密码对中删除最后两个逗号。然后将是这样:
app = dash.Dash(__name__,server=server)
auth = dash_auth.BasicAuth(
app,
(('abcde','1234'))
)