2015-12-18 4 views
1

У меня есть одно приложение для django и несколько небольших веб-сервисов Flask.Проверьте пользователя django за пределами django

В приложениях Flask мне нужно проверить, был ли клиент зарегистрирован в приложении Django и захватить его pk, если это возможно.

Кажется, это возможно, взяв идентификатор сеанса из файла cookie и вручную просмотрев сессионное хранилище, но я ищу несколько менее низкоуровневых решений.

ответ

0

Для этого вам нужно построить REST api. В api на стороне django вы запрашиваете пользователя по любым критериям, которые вы предоставили, и возвращаете user.is_authenticated() и user.pk. Взгляните на django-rest-framework или tastypie. Затем в приложении Flask вы просто нажмете api, и все готово.

+0

Ну, DRF позволит мне построить API. Но все же мне нужно что-то сделать. Что вы предлагаете - отправить cookie/session id в DRF и проверить их с помощью встроенных методов django? Это выглядит немного неэффективно, как с веб-приложением Flask. Я пытаюсь переместить некоторый трафик и загрузку django. Но с помощью этого метода Django по-прежнему будет получать большой объем трафика. – Glueon

+0

Вы должны отправить что-то вроде 'username' в приложение django. Затем в django вы вызываете 'User.objects.filter (username = username)', чтобы получить пользователя. Я не знаю достаточно о вашей нагрузке на трафик, но это единственный «менее низкий уровень», о котором я могу думать. –

+0

Представьте, что пользователь успешно выполнил вход в django по адресу http://domain.com. Теперь на странице есть js, который отправляет запросы на некоторые http://api.domain.com/get/some/stuff для получения дополнительных данных. Или даже проще - подключается к некоторому websocet. Эти службы возвращают личные данные, поэтому они должны уметь понимать, что запрос поступает от аутентифицированного пользователя. Поэтому он получает только свои уведомления от websocket и т. Д. Поэтому мне нужно как-то понять, что запрос поступает из js на странице после входа пользователя в django. Единственные данные, которые у меня есть, - это файлы cookie. – Glueon

Смежные вопросы