koriaf / ulogin-django Goto Github PK
View Code? Open in Web Editor NEWThis project forked from ulogin/ulogin-django
uLogin plugin for Django, updated to modern django/python version
Home Page: http://ulogin.ru
License: Other
This project forked from ulogin/ulogin-django
uLogin plugin for Django, updated to modern django/python version
Home Page: http://ulogin.ru
License: Other
django-ulogin ------------- Django-ulogin является приложением для социальной аутентификации пользователей с помощью интернет-сервиса `ULOGIN.RU <http://ulogin.ru>`_ Требования ----------- - Python 2.6+ - Django Framework v 1.2.5+ - requests Лицензия -------- Распространяется по лицензии MIT Установка ---------- 1. Для установки ``django-ulogin`` в текущее окружение можно воспользоваться утилитой ``pip``. :: pip install django-ulogin 2. Откройте ``settings.py`` и добавьте в ``INSTALLED_APPS`` приложение ``django_ulogin`` :: INSTALLED_APPS += ('django_ulogin', ) 3. Откройте urls.py и добавьте схему URL: :: urlpatterns += patterns('', url(r'^ulogin/', include('django_ulogin.urls')), ) 4. Синхронизируйте базу данных :: ./manage.py syncdb Использование ------------- Для использования приложения достаточно в любом месте шаблона вставить подключение шаблонной библиотеки ``ulogin_tags`` и вызов тега ``ulogin_widget``. :: {% load ulogin_tags %} {% ulogin_widget %} На месте тега ``ulogin_widget`` при рендеринге появится код интеграции Вашего сайта ULOGIN. Тонкая настройка ---------------- По умолчанию ``django_ulogin`` требует от сервиса только одно обязательное поле - ``email``. Вы можете указать для проекта список как необходимых полей (определив в ``settings`` список ``ULOGIN_FIELDS``), так и опциональных (``ULOGIN_OPTIONAL``): :: # Поля first_name и last_name обязательны ULOGIN_FIELDS = ['first_name', 'last_name'] # Необязательные поля: пол, URL аватара, дата рождения ULOGIN_OPTIONAL = ['sex', 'photo', 'bdate'] Список всех полей, которые сообщает ULOGIN: - first_name - last_name - email - nickname - bdate *(дата рождения, передаётся в формате dd.mm.yyyy)* - sex *(пол: 1 означает женский, 2 - мужской)* - photo *(аватар, размер 100х100 пикселей)* - photo_big - city - country Внешний вид виджета определяется параметром ``ULOGIN_DISPLAY``. Доступно три варианта: - panel - small *(по умолчанию)* - button Список используемых провайдеров определяется директивой ``ULOGIN_PROVIDERS``. По умолчанию включены: - vkontakte - facebook - twitter - google - livejournal Дополнительные провайдеры, которые будут показаны внутри выпадающего меню, определяются в директиве ``ULOGIN_HIDDEN``. По умолчанию: - yandex - odnoklassniki - mailru - openid Полный список поддерживаемых провайдеров можно уточнить на сайте http://ulogin.ru Если при входе нужно выполнить какую-то JavaScript-функцию, укажите её в виде строки в переменной ``ULOGIN_CALLBACK``. Сигналы ------- При аутентификации пользователя создаётся новый Django-пользователь, ``username`` которого заполняется uuid4-хешем. Однако при создании новой аутентификации срабатывает сигнал ``django_ulogin.signals.assign``, в котором передаётся объект ``request``, пользователь Django, аутентификация и флаг того, была ли создана запись. Чтобы сделать имя поля дружественным пользователю, достаточно создать объект, подписанный на сигннал ``django_ulogin.signals.assign``: :: def catch_ulogin_signal(*args, **kwargs): """ Обновляет модель пользователя: исправляет username, имя и фамилию на полученные от провайдера. В реальной жизни следует иметь в виду, что username должен быть уникальным, а в социальной сети может быть много "тёзок" и, как следствие, возможно нарушение уникальности. """ user = kwargs['user'] json = kwargs['ulogin_data'] if kwargs['registered']: user.username = json['username'] # В при user.first_name = json['first_name'] user.last_name = json['last_name'] user.email = json['email'] user.save() from django_ulogin.models import ULoginUser assign.connect(receiver = catch_ulogin_signal, sender = ULoginUser, dispatch_uid = 'customize.models') Можно изучить тестовый проект, в котором реализована функция сохранения данных, полученных от ULogin: - https://github.com/marazmiki/django-ulogin/tree/master/test_project - https://github.com/marazmiki/django-ulogin/blob/master/test_project/customize/models.py#L53
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.