Как я могу создать единый вход и профиль для сети из трех сайтов, используя Django? - PullRequest
3 голосов
/ 05 января 2011

Как я могу создать единый вход и профиль для сети из трех сайтов, используя Django?

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

Есть ли элегантное решение этой проблемы?

Ответы [ 3 ]

3 голосов
/ 05 января 2011

Пусть сайты делятся базами данных.Следовательно, у них будет общая таблица пользователей.

Взгляните на структуру сайтов django: http://docs.djangoproject.com/en/dev/ref/contrib/sites/

1 голос
/ 05 января 2011

Зависит от вашего сервера (ов).

Все ли сайты имеют доступ к одной и той же БД?Затем используйте ответ dcrodjer's.

Если нет, вы можете внедрить службу единого входа в стиле OAuth, с которой другие сайты проходят аутентификацию..example.com siteN.example.com

Будет ли авторизация против oauth.example.com

0 голосов
/ 05 января 2011

Если вы можете поместить эти три сайта в субдомены одного домена, то я почти уверен, что вы можете придерживаться того, что предлагает Django.То, о чем я пишу, выглядит примерно так:

site1.mydomain.com site2.mydomain.com site3.mydomain.com

- где вход осуществляется на mydomain.com.

По сути, mydomain.com должен обслуживать небольшую страницу Django, которая реализует только форму входа и поддерживает сеанс для домена ". Mydomain.com" (обратите внимание на начальную точку - она ​​требуется длясеанс для распространения на поддоменах site1..3).Поэтому, если вы войдете на mydomain.com, вы фактически войдете на все три дочерних сайта.

И самый простой способ обмена данными аутентификации и сеанса на стороне сервера - заставить сайты 1,2,3 использовать две базы данных.одна небольшая база данных совместно используется с mydomain.com для данных аутентификации и сеанса, а другая - для конкретного сайта.

...