Аутентификация приложения Dash-Plotly - данные для входа в систему, сохраненные в виде файлов cookie / Heroku Hosted 'Type' Ошибка объекта - PullRequest
0 голосов
/ 05 июля 2018

Я включил функцию аутентификации в свой код, основанный на официальных документах Dash-Auth . Это приложение должно быть размещено на Heroku. Происходит пара вещей (код ниже):

app = dash.Dash('app',server=server)
app = dash.Dash('auth')
auth = dash_auth.BasicAuth(
    app,
    (('abcde','1234',),)
)
  1. Локально, аутентификация работает безупречно, за исключением того, что как только вы войдите в приложение, оно сохраняет данные для входа в виде файлов cookie. Следовательно, если вы обновит страницу или, возможно, вставит ссылку в новое окно не будет запрашивать информацию для входа снова, пока вы не очистите куки в браузере.

  2. Как только приложение передается мастеру heroku, оно успешно развертывается это, к сожалению, приложение не открывается из-за ошибки приложения. При проверке логов heroku показанная ниже ошибка. Эта ошибка не отображается при локальном размещении.

«Ошибка типа: объект« тип »не может быть подписан».

Согласно записи я удалил dash.ly, так что я уверен, что ошибка не имеет к этому никакого отношения. Согласно этому сообщению около 8-го комментария кто-то поднимает вопрос о входе в систему, но ответ не является окончательным.

Update1

: Я полагаю, что между app = dash.Dash('app',server=server) и app = dash.Dash('auth') существует конфликт с того момента, как я удаляю код,

app = dash.Dash('auth')
auth = dash_auth.BasicAuth(
    app,
    (('abcde','1234',),)
)

Приложение работает нормально даже после развертывания на heroku.

1 Ответ

0 голосов
/ 03 октября 2018

Попробуйте эти 3 пункта:

Измените имя вашего приложения "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'))
)
...