Посты с тэгом django social auth


Django Social Auth: авторизация через pop-up

Меня часто спрашивают, как сделать авторизацию с использованием pop-up так, чтобы пользователю не нужно было покидать главную страницу приложения.
Я сделал пример в своей ветке, но также оформил pull request в основную ветку.

Всех с наступающими праздниками!



Django Social Auh и авторизация в приложениях для ВКонтакте: пример

Пример добавлен в мой fork и в главную ветку вот в этом pull request.



Django Social Auth and Facebook Canvas Applications: Example

Illustrating technology described here I’ve added an example code to DSA in this pull request. Enjoy



United DSA

Функциональность моего форка была перенесена в основную ветку Django Social Auth. Танцуем.

Благодарности: bacher09 и gugu.

ВНИМАНИЕ: изменились имена настроек для Yandex и VKontakte. Новые имена: YANDEX_APP_ID, YANDEX_API_SECRET; VK_APP_ID, VK_API_SECRET.

С меня: код примеров для авторизации на VK и FB приложениях и для загрузки картинок. А, и ассоциацию с Яндексом неплохо бы решить.



Django Social Auth: Авторизация на Яндекс через OAuth2

Понедельник, как говорится, начинается в субботу — праздники дали возможность немного поработать над своими проектами. Добавлен backend для авторизации на Яндекс через OAuth2. Особенности/ограничения:

  • Нельзя указывать права доступа в настройках приложения. Права доступа задаются для разных сервисов Яндекса при регистрации приложения. Там же прописывается redirect_uri.
  • В настройке YANDEX_OAUTH2_API_URL указывается URL того сервиса, из которого вы хотите получать информацию о пользователе. Проверено и работают 2 сервиса: Я.ru, url=’https://api-yaru.yandex.ru/me/’ и Мой Круг, url=’http://api.moikrug.ru/v1/my/’. Не получилось проверить Яндекс.Фотки (url=’http://api-fotki.yandex.ru/api/me/’), как я не пытался все время возникала 500 Internal Server Error. Возможно, в праздники идет какой-то апгрейт.

Буду благодарен за обратную связь по работе backend’a.



Новые функции Django Social Auth

В комментариях к этой записи оставляйте, пожалуйста, ваши пожелания по новой функциональности Django Social Auth.
В ближайших планах: поддержка OAuth для Яндекса (ожидается после новогодних праздников).

Всех с наступающим Новым годом!



Django Social Auh и авторизация в приложениях для ВКонтакте

Кроме авторизации в приложениях для Facebook в ходе работы над проектом была решена еще одна задача – авторизация в приложениях для ВКонтакте. Как и в случае с Facebook, у меня было сильное желание не делать два раза одну и ту же работу, а использовать одну и ту же базу пользователей и один и тот же механизм для авторизации через сайт ВКонтакте и для авторизации в iframe-приложении ВКонтакте. Это удалось решить без особых сложностей, и вот наконец пришло время сорвать покров тайны с некоторых загадочных настроек.

Особенности ВКонтакте

В отличие от Facebook, у ВКонтакте есть одна принципиальная особенность, которая несколько затрудняет решение этой задачи, а именно: вы не можете использовать одно и то же приложение для авторизации через OAuth и для авторизации в iframe-приложении. Вам необходимо зарегистрировать iframe-приложение для ВКонтакте отдельно и получить для нег



Рекомендации для начинающих работать с Django Social Auth

Меня часто спрашивают, а я ленюсь отвечать одно и то же. Поэтому хочу здесь дать несколько практических советов тем, кто начинает разбираться с DSA.

1. С чего начать?
Начинайте всегда с примера django-social-auth/example, а в нем – с простых авторизаций вроде OpenId. Потом можно заполнить local_settings и переходить к OAuth, но имейте в виду, что многие из них потребуют запуска на доменном имени вашего сайта, а не на localhost.

2. Не работает!
Когда я делаю merge больших изменений из основной ветки, то всегда проверяю, не сломалась ли авторизация (бывает, что ломается), и только потом выкладываю код на github. Это я как бы намекаю, что проблема, скорее всего, на вашей стороне. Проверьте настройки, URL’ы и импорты.

3. Используется ли в реальных проектах?
Да, в частности на http://conceptor.ru. Собственно, для этого проекта все и разрабатывалось, сайт можно использовать в качестве развернутого примера



Django Social Auth and Facebook Canvas Applications

This post will be on English in order to be useful for a wider audience of developers.

Signed request authorization

Django Social Auth supports authentication via Facebook by default. When my project required to develop a Facebook application as another interface for our service I’ve got a natural desire to use the same authorization framework we use for login. This would be quite efficient and handy in terms of re-use of existing users database and well-known code. Unfortunately, authentication process for Canvas applications is different comparing to normal OAuth. Looking to Facebook manual you see:

In order to create a personalized user experience, Facebook sends your app information about the user. This information is passed to your Canvas URL using HTTP POST within a single signed_request parameter which contains a base64url encoded JSON object.



Django Social Auth: now with images

В рамках текущего проекта возникла задача при регистрации пользователей через социальную сеть кроме их контактных данных получать еще и изображение. Небольшое расследование показало, что каждая сеть практикует свой метод отдачи изображений, что в результате вылилось в следующий код, который вызывается в обработчике сигнала pre_update:

from social_auth.signals import pre_update

@receiver(pre_update)
def update_person_details(sender, **kwargs):
    person = kwargs.get('user')
    details = kwargs.get('details')

…

    load_person_avatar(sender, person, kwargs.get('response'))
…

def load_person_avatar(sender, person, info):
    image_url = None

    if sender.name == 'vkontakte-oauth2':
        vk_response = info.get('response')
        if vk_response:
            image_url = vk_response.get('user_photo') # If photo is absent user_photo is absent too

    elif sender.name == 'odnoklassniki':
        image_url = info.get('pic_2')
        if 'stub' in image_url: # No real im