Новости Django Social Auth

19 апреля 2011

В продолжение статьи «Авторизация в социальных сетях для Django».

Основная ветка проекта развивается довольно интенсивно, добавилась поддержка LinkedIn, Google OAuth2, тесты и большое количество мелких, но полезных фитюлечек, вроде автоматического ассоциирования пользователя по e-mail.

Замечена интересная особенность Google OpenID. Если ваш сайт поддерживает «сквозную» авторизацию на поддоменах и вам принципиально, чтобы человек, авторизовавшийся в одном поддомене, мог продолжать работать без авторизации и в другом, я рекомендую воспользоваться Google OAuth. Фишка в том, что Google OpenID выдает разные id пользователя для разных поддоменов одного и того же сайта. Так как библиотека не может определить, что пользователь, который пришел на поддомен ААА, уже был зарегистрирован в поддомене БББ, в результате создается новая учетная запись. У OAuth такой проблемы нет, зато есть два плюса: вы гарантированно получаете e-mail пользователя и вам не нужно регистрировать свое приложение, как в OAuth 2.0.

Обнаружена ошибка в библиотеке Python-OpenID, которая выдает довольно странную диагностику: OpenID authentication failed: return_to does not match return URL, при этом URL’ы совпадают. Обсуждение находится здесь, авторам библиотеки сообщение отправлено, ждем, когда поправят.

В моем форке два изменения:

  1. Для авторизации на Yandex теперь не обязательно указывать имя пользователя. Если оно не задано, то используются возможности OpenID 2.0, сервер с библиотекой договариваются сами и, когда надо, задают пользователю необходимые вопросы. Спасибо Ивану Сагалаеву за подсказку (детали обсуждения здесь).
  2. Добавлен backend для авторизации на Одноклассниках с использованием OAuth 2.0. По умолчанию запрашиваемый scope минимален, этого хватает для авторизации, а пользователю не нужно мучительно размышлять, давать ли доступ к своей стене, e-mail и пр.

Внимание, вопрос: поддержку какого именно сервиса авторизации вам бы хотелось увидеть следующей: ВКонтакте через OAuth 2.0 или Mail.ru?

Ответы на: Новости Django Social Auth

  • Grigoriy Petukhov пишет:

    19 апреля, 2011

    Привет, а какую ты библиотеку используешь для oauth2? Я сейчас делаю практически тот же велосипед, что и ты (http://bitbucket.org/lorien/django-xauth). Так вот, насколько я понял, python-oauth2 либа реализует oauth v.1 протокол, а для oauth v.2 я заюзал другую либу, там в README она описана.

    • krvss пишет:

      19 апреля, 2011

      Ну я изобретаю не совсем велосипед, а часть велосипеда 🙂 Сам движок делает автор django-social-auth, я и несколько других людей предлагаем свои доработки конечно, но в основном я занимаюсь нужными своему проекту backends.
      Для OAuth используется https://github.com/simplegeo/python-oauth2, она же используется и для oauth v. 1.

  • Grigoriy Petukhov пишет:

    19 апреля, 2011

    А я чё-то не понял, как использовать python-oauth2 для oauth v.2 можешь дать прямую ссылку на код, где ты юзаешь oauth v.2 через эту либу?

  • Иван Сагалаев пишет:

    19 апреля, 2011

    Традиционная просьба: поправьте, пожалуйста, фамилию в тексте — Сагалаев.

    • krvss пишет:

      19 апреля, 2011

      Прошу прощения, поправил. Сегодня день ошибок в фамилиях — написал такое же письмо про свою фамилию несколько часов назад.

      • Иван Сагалаев пишет:

        19 апреля, 2011

        Меня вообще так довольно часто путают 🙂

        • krvss пишет:

          20 апреля, 2011

          Меня один раз переделали вообще в Кварца.

          Кстати, развернулась дискуссия насчет той проблемы с janrain-none в POST с авторами python-openid. Пока они меня пытаются убедить в том, что виноваты все, кроме них 🙂 Расскажу попозже чем дело кончится.

  • Денис Малиновский пишет:

    21 апреля, 2011

    Я за Вконтакте. 🙂

  • cwer пишет:

    22 апреля, 2011

    mail.ru, останется только рамблер из почтовиков, которыми пользуются в России

  • cwer пишет:

    23 апреля, 2011

    И вообще предлагаю отделить дополнительные бэкенды в отдельный апликейшн, чтоб можно было установить официальный social-auth и отдельно этот аппликейшн и не заботиться о том, синхронизирован ли ваш форк с ним

    • cwer пишет:

      23 апреля, 2011

      Конечно же синхронизирован не с отдельным апликейшеном, а с официальным social-authç Непонятно написал в предыдущем комменте

      • krvss пишет:

        25 апреля, 2011

        То, как сделано сейчас гарантирует, что не будет проблем с официальным django-social auth. Если разделить я боюсь через какое-то время начнутся проблемы — django-social-auth иногда довольно жесткие изменения случаются, а когда я делаю merge я всегда проверяю что функциональность сохранила работоспособность.

Comments closed