Передайте учетные данные в аутентификацию Da sh basi c, чтобы пользователю не пришлось вводить ее снова - PullRequest
4 голосов
/ 05 апреля 2020

У меня есть приложение Da sh (назовите его диаграммами), которое появляется из другого приложения da sh (назовите его основным). Пользователь уже выполнил вход на главной странице (используя пользовательскую форму входа / прохода), и я хотел бы передать эти учетные данные на страницу диаграмм, когда они будут перенаправлены, чтобы им не приходилось повторно вводить имя пользователя и пароль .

Причина, по которой я должен пройти аутентификацию на странице диаграмм, заключается в том, что некоторые rando не могут просто набрать URL и получить доступ к странице персонализированных диаграмм другого пользователя.

Есть ли у кого-нибудь Любая идея, как я мог получить Basi c Auth принять учетные данные за кулисами, как это? (https://dash.plotly.com/authentication)

ДОПОЛНИТЕЛЬНЫЕ МЫСЛИ:

Все еще ищите какие-либо предложения. К сожалению, я не думаю, что могу использовать безопасность конечной точки в стиле flask (@login_required, et c), потому что конечной точкой является flask .reirect для совершенно нового отдельного приложения da sh с его собственный URL: порт. Flask Безопасность конечных точек на главной странице не помешает кому-либо открыть совершенно новый браузер с сеансом fre sh и ввести адрес приложения в диаграммах прямо в URL.

Мне очень нравится идея наличие базового c auth в приложении charts, а затем, если к нему обращается с помощью перенаправления из основного приложения, мы каким-то образом передаем учетные данные в базовый c auth (вроде как при обновлении sh страницы Вы уже вошли, это не заставляет вас снова войти в систему.)

Ответы [ 3 ]

1 голос
/ 14 апреля 2020

Что ж, учитывая, что у вас есть эта многопользовательская архитектура и wi sh для сохранения входа в систему - почему у вас нет дизайна с поддержкой SingleSignOn? Либо создайте свое собственное приложение единого входа, либо используйте провайдера.

Теперь, когда пользователь получает доступ к любому приложению в вашей экосистеме, он должен войти в провайдера единого входа, который даст вам токен аутентификации или что-то подобное (это действует для некоторых время назад и всякий раз, когда происходит перенаправление между приложениями, этот токен используется совместно, и это приложение использует токен для повторной аутентификации пользователя (за кулисами). И если кто-то напрямую обращается к приложению, он запускает страницу единого входа (потому что токена нет).

Существует несколько блогов / учебных пособий, посвященных настройке единого входа в flask приложениях. У каждого есть свои плюсы / минусы. Надеюсь, это поможет.

0 голосов
/ 13 апреля 2020

В итоге я использовал сеансы flask -login и flask, чтобы убедиться, что браузер, который переходит на страницу диаграммы, является тем же сеансом браузера, который был первоначально аутентифицирован на главной странице.

0 голосов
/ 12 апреля 2020

Возможно, вы могли бы сгенерировать CSRF-подобный токен, который рассчитывается по секрету, имени пользователя и метке времени (поэтому токен недействителен вечно). Затем передайте это как параметр в другое приложение. Исходный код Django должен содержать хороший пример того, как его создать.

...