No description, website, or topics provided.
Python
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
loginza
test_project
.gitignore
AUTHORS
LICENSE
MANIFEST.in
Makefile
README.rst
requirements.txt
setup.py

README.rst

Django Loginza

Django-приложение, обеспечивающее работу с сервисом авторизации Loginza (loginza.ru)

Установка

Установка производится с помощью pip:

$ pip install -e git+git://github.com/xobb1t/django-loginza.git@develop#egg=django-loginza

Последняя актуальная версия доступна в репозитории GitHub.

Для корректной работы приложения необходимо, чтобы так же были установлены приложения django.contrib.auth, django.contrib.sessions, django.contrib.messages и django.contrib.sites.

После этого, необходимо добавить приложение в INSTALLED_APPS и добавить бэкэнд авторизации - loginza.authentication.LoginzaBackend в AUTHENTICATION_BACKENDS. В общем случае, бэкэнды авторизации будут выглядеть так:

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',
    'loginza.authentication.LoginzaBackend',
)

В этом случае, можно будет использовать как стандартную форму авторизации по логину и паролю (например, для доступа в админскую панель), так и loginza-авторизацию.

Для того, чтобы переменная LOGINZA_WIGET_ID со значением WIDGET_ID была доступна в контексте, следует добавить в TEMPLATE_CONTEXT_PROCESSORS строчку loginza.context_processors.widget_id.

После добавления приложения, необходимо установить необходимые таблицы в БД (выполнить python manage.py suncdb в корне проекта).

Далее, нужно подключить URL'ы приложения в URLCONF проекта:

urlpatterns += patterns('',
    (r'^loginza/', include('loginza.urls')),
)

Модели

Приложение предоставляет модель loginza.models.Identity, обладающую следующим набором полей:

  • identity - Идентификатор в сервисе, через который происходила авторизация;
  • provider - Имя сервиса авторизации;
  • user - ForeignKey на django.contrib.auth.models.User.

Также доступны следующие методы:

  • associate(user) - осуществляет привязку пользователя к Identity записи;
  • create_user(username, email, password) - создает и возвращает нового пользователя.

Представления

В приложении доступны два представления.

loginza_callback

Представление принимает в качестве GET-параметра переменную next, с помощью которой можно устанавливать адрес для пренаправления после успешной процедура авторизации (регистрации, прикрепления идентификатора)

Примеры отображения виджетов Loginza можно посмотреть на странице Примеры интеграции Loginza в форму авторизации сайта.

Настройки

Настройка приложения производится с помощью словаря LOGINZA_CONFIG в настройках проекта. Например:

LOGINZA_CONFIG = {
    'WIDGET_ID': '123456',
    'SECRET_KEY': 'asdfgh',
}

Ниже представлены основные настройки:

WIDGET_ID

По-умолчанию: None

Используется в паре с SECRET_KEY для работы с Loginza в безопасном режиме.

SECRET_KEY

По-умолчанию: None

Используется в паре с WIDGET_ID для работы с Loginza в безопасном режиме.

API_URL

По-умолчанию: None

Настройка позволяет указать альтернативный URL для взаимодействия с Loginza API.

DEFAULT_USERNAME

По-умолчанию: loginza_user

Значение используется как username пользователя, если он не был предоставлен сервисом Loginza.

Сигналы

Приложение предоставляет сигнал loginza.signals.post_associate, отправка которого происходит каждый раз, когда осуществляется привязка пользователя и идентификатора Loginza. Полезно для обновления информации о пользователе, предоставляемой Loginza, в Вашем проекте.

  • sender - loginza.models.Identity;
  • instance - обьект класса loginza.models.Identity, к которому осуществлена привязка пользователя.