Django-loginza-auth is a project mainly written in Python, based on the ISC license.
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
, к которому осуществлена
привязка пользователя.https://github.com/xobb1t/django-loginza http://loginza.ru/signin-integration