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)- создает и возвращает нового пользователя.
В приложении доступны два представления.
Представление принимает в качестве GET-параметра переменную next,
с помощью которой можно устанавливать адрес для пренаправления после
успешной процедура авторизации (регистрации, прикрепления идентификатора)
Примеры отображения виджетов Loginza можно посмотреть на странице Примеры интеграции Loginza в форму авторизации сайта.
Настройка приложения производится с помощью словаря LOGINZA_CONFIG в настройках проекта. Например:
LOGINZA_CONFIG = {
'WIDGET_ID': '123456',
'SECRET_KEY': 'asdfgh',
}
Ниже представлены основные настройки:
По-умолчанию: None
Используется в паре с SECRET_KEY для работы с Loginza в безопасном режиме.
По-умолчанию: None
Используется в паре с WIDGET_ID для работы с Loginza в безопасном режиме.
По-умолчанию: None
Настройка позволяет указать альтернативный URL для взаимодействия с Loginza API.
По-умолчанию: loginza_user
Значение используется как username пользователя, если он не был предоставлен сервисом Loginza.
Приложение предоставляет сигнал loginza.signals.post_associate, отправка
которого происходит каждый раз, когда осуществляется привязка пользователя и
идентификатора Loginza. Полезно для обновления информации о пользователе,
предоставляемой Loginza, в Вашем проекте.
sender-loginza.models.Identity;instance- обьект классаloginza.models.Identity, к которому осуществлена привязка пользователя.