Pull to refresh

Comments 7

Вот что-нибудь похожее только для аутентификации пользователей с моб.платформ через соц.сети/oauth2-провайдеров на своем сервере, т.к. с аутентификацией через браузер вроде особых проблем нет. А с моб.устройств у всех поголовно нужно токены проверять, т.к. элегантного решения я не нашел. Если у кого-то получилось это сделать красиво, поделитесь опытом)
Для себя сделали серверную API прослойку между oauth2-провайдером и телефоном, очень удобно. Выглядит это примерно так: с мобильной лпатформы идет обращение к API серверу для авторизации с указанием желаемого провайдера, дальше, сервер делает запрос к АПИ провайдера, после чего, получив ссылку для авторизации, передает ее мобильной платформе, а она в свою очередь открывает ее во встроенном браузере. При успешной авторизации, присходит редирект на специальный URL приложения.
Исходничков в открытом доступе я так понимаю нет и не планируется?) Но за идею спасибо, я думал про такой вариант, но отказался в пользу менее удобного.
Так как тут возникает проблема с тем, что пользователю нужно обязательно вводить свой логин/пароль от соц.сети, на что мне некоторые бета-тестеры сказали «мол это неудобно, сделай в пару кликов, у меня же стоит приложение от этой сети».
И тут делема: либо делать универсально через oauth, но тогда пользователю вводить пароль, либо через sdk для каждой сети, что затратнее по времени, но удобнее конечному потребителю.
Неужели в наше время для такой простой задачи приходится писать свои велосипеды вместо использования готового и протестированного решения. В гугле меня вроде не забанили, но найти такого я не смог.
Поддерживает ли Authomatic OpenID Connect?
Страшно интересно потому, что хочется аутентифицировать пользователей не только через всех вышеперечисленных провайдеров, но, например, и через Azure AD и подобные, более корпоративные источники.
Использую django-allauth.

Умеет:
— социальные регистрации/авторизации
— авторизации/регистрации по имейлу или логину, или по обоим
— если социалка не отдала имейл или другое обязательное поле, затребует его, а затем попросит подтвердить (в случае имейла) — все настраиваемо
— авторизация по множеству имейлов, т.е. хочешь заходи по одному, хочешь по другому
— смену имейлов
— подтверждение имейлов
— управление социальными аккаунтами — отключение, подключение
— восстановление пароля
— django 1.7

Есть возможность:
— указать какие формы использовать
— использовать свои шаблоны путем простой перезаписи
— приложение использует messages для вывода событий: вошел, ушел и прочее
— сигналы и наследование «адаптеров» — это такой флоу процесса авторизации/регистрации

По моему скромному мнению, это лучший код, который мне довелось читать: все комментировано, пеп, да тупо красиво. Код полностью обложен тестами.

Есть одно «но»: до сих пор не могу полностью понять как оно работает %) Код так инкапсулирован, что без пол литра не разберешь.
Sign up to leave a comment.