Форум → Программирование → Python → Django → Авторизация через всякие соц. сети в Django. Кто и как это решает?
Авторизация через всякие соц. сети в Django. Кто и как это решает?
Страницы: ← Следующая страница →
-
26 июня 2012 г. 2:58, спустя 22 дня 7 часов
Инетресуют готовые компоненты, например:
* https://github.com/krvss/django-social-auth <- ВЫБОР РЕДАКЦИИ
* https://github.com/vgarvardt/django-loginza
* http://pypi.python.org/pypi/django-ulogin <- НЕ ПОНРАВИЛСЯ
UPD: https://bitbucket.org/offline/django-publicauth
А в теории, думалось использовать так:
* Есть Auth объекты (сейчас больше всего похож на него django.contrib.auth.models.User, но это не совсем то). В Auth хранится только тип авторизации и разнородные доп. данные (можно EAV, сериализованный объект, монгу и т.д., не суть)
* Далее, есть User/Profile как угодно, в котором находятся нужные проекту поля, такие как birthday, gender и т.д.
* User имеет ForeignKey к Auth
В моём понимании не надо делать единный User, а разбивать на два, тогда предложенный джангой вариант мне более чем подходит.
С другой стороны многие юзают единный объект пользователя, кто просто не использует django.contrib.auth.models.User, а другие юзают что-то типа того (в кратце юзают https://github.com/aino/django-primate)
Как вы реализовываете это в своих приложения (не обязательно Django)?https://smappi.org/ - платформа по созданию API на все случаи жизни -
5 марта 2012 г. 17:04, спустя 14 часов 6 минут 41 секунду
https://github.com/vgarvardt/django-loginza
хуйня блин сырая :-(
там генерация "temporary username" страдает по черному, пришлось ее под себя переписать, не не манкипатчингом))Сапожник без сапог -
5 марта 2012 г. 17:06, спустя 1 минуту 40 секунд
Только узнал, что http://loginza.ru/ делает Яндекс, в футере написаноСпустя 75 сек.phpdude, а что по теории? Если предложения?https://smappi.org/ - платформа по созданию API на все случаи жизни -
5 марта 2012 г. 17:08, спустя 1 минуту 37 секунд
http://loginza.ru/ делает Яндекс
изначально не они, купили пол годика назад где-то -
5 марта 2012 г. 17:09, спустя 1 минуту
Получается Auth(auth_type, user, last_auth_data), AuthType(name), User(auth, …)https://smappi.org/ - платформа по созданию API на все случаи жизни -
5 марта 2012 г. 17:17, спустя 8 минут 42 секунды
adw0rd, Во первых должны быть Service Provider список. Хоть в виде модели, хоть в виде обычного list'а, чтобы можно было фильтровать в админке и тп.
А там по сути
UserMap:
provider = enum/foreign key
identytity = char(250)
user = foreign key
extra= JSON_DATA например access_token
Причем extra можно вынести в отдельную тублицу OneToOne, чтобы размер таблицы юзер мапа был не пиздец огромным.
При авторизации через OpenID Provider'а, ищем его identity (user url/user id/etc) в этой хеш таблице(identyty => user), если найден - через свой аутх бекенд авторизуем его, обновляем extra params (по вкусу, есть плюшки если юзать, а лая постинг на стену/стрим и тп), если не найден - регистрируем пользователя, потом его авторизуем.
в общем то больше базово ничего на первый взгляд не надо ну и на каждый service provider мы создаем по своему "LoginController", которые обрабатывают запросы, проверяют подписи, фетчат токены и другое.
Можно юзать логинзу :-)
Она делает все что делает LoginController, только нативно и тебе предоставляет инфу, но она это делает ебано - через 10 окошек, что мне не нравится, я тут для себя сделал авторизацию через контакт, классно получилось :-)
Кнопку "Авторизоваться" жмак - велкам, ты авторизован и зарегистрирован, даже OK нигде не надо нажимать, ну окромя окошка подтверждения входа черз контакт на данный APP Service. Окошко отобраажется один раз, потом тебе выписывают Access token и ты больше не видишь это окно.Спустя 110 сек.
Заводить своего User смысла я не вижу, тогда придется полжанги переписать :-)
Получается Auth(auth_type, user, last_auth_data), AuthType(name), User(auth, …)
А тут можно еще в принципе сразу Profile завести и мапинг легко натсраиваемый сделать (ведь соц сети могут дать много инфы о юзере), чтобы сразу профайл создавать.Сапожник без сапог -
5 марта 2012 г. 17:41, спустя 23 минуты 19 секунд
Спасибо, у меня так и получается :)Спустя 52 сек.Попробуй https://github.com/krvss/django-social-auth, там есть вконтакте, мейлру, яндекс и т.д.Спустя 40 сек.http://www.ikrvss.ru/tag/django-social-auth/https://smappi.org/ - платформа по созданию API на все случаи жизни -
5 марта 2012 г. 17:45, спустя 3 минуты 53 секунды
Попробуй https://github.com/krvss/django-social-auth, там есть вконтакте, мейлру, яндекс и т.д.
вконтакте
А ВОТ ХУЙ! ОНИ ПИЗДАБОЛЫ :-)Backends
OpenId
OAuth
Twitter
Facebook
Orkut
Google OAuth
Google OAuth2
LinkedIn
GitHub
Dropbox
Flickr
BrowserID
InstagramСпустя 22 сек.нет там ни яндекса ни вконтакта, думаешь я это не пробовал? :-)))Спустя 57 сек.поэтому я свой SP и написал, заодно узнал как работает (ну я так и думал, что он так и работает, но проверить != думать :-) ) OAuth 2.0 (1.0 - та же хуйня, не думаю сильно отличается)Сапожник без сапог -
5 марта 2012 г. 17:47, спустя 2 минуты 29 секунд
phpdude, ты пробовал оригинал, а я тебе предлагаю форк и ссылки давал только на форк, читай
http://www.ikrvss.ru/2012/01/04/yandex-oauth/
http://www.ikrvss.ru/2011/11/08/django-social-auh-and-vkontakte-application/ и т.д.
там было упоминание ещё одноклассников, мейлру и т.д.Спустя 25 сек.пруф https://github.com/krvss/django-social-auth/tree/master/social_auth/backends/contribhttps://smappi.org/ - платформа по созданию API на все случаи жизни -
5 марта 2012 г. 17:48, спустя 44 секунды
adw0rd, ах :-)
Ну в общем спасибо, я все равно давно хотел сам OAuth узнать, так что это было больше лаборатнрной работой ;)Сапожник без сапог -
5 марта 2012 г. 17:52, спустя 3 минуты 57 секунд
Ребята, на finle.ru юзаю логинзу, многие люди жалуются на ошибки. сервис сырой и почти не развивается. Как альтернатива можно попробовать uLogin, они недавно на хабре писали. там хотя бы люди работают. -
5 марта 2012 г. 17:57, спустя 5 минут 19 секунд
Ребята, на finle.ru юзаю логинзу, многие люди жалуются на ошибки. сервис сырой и почти не развивается.
СмелоСпустя 203 сек.да логинза так себе, я столкнувшись понял, что и правда лучше свой написать. логинза тупо неудобнаяСапожник без сапог -
5 марта 2012 г. 17:57, спустя 17 секунд
ой, тут даже есть http://pypi.python.org/pypi/django-ulogin
Ребята, на finle.ru юзаю логинзу, многие люди жалуются на ошибки. сервис сырой и почти не развивается. Как альтернатива можно попробовать uLogin, они недавно на хабре писали. там хотя бы люди работают.https://smappi.org/ - платформа по созданию API на все случаи жизни -
5 марта 2012 г. 18:01, спустя 3 минуты 30 секунд
судя по описалову, uLogin уже получше логинзы..Сапожник без сапог -
5 марта 2012 г. 18:14, спустя 13 минут 9 секунд
https://github.com/marazmiki/django-uloginСпустя 111 сек.да, с виду он намного лучше логинзыhttps://smappi.org/ - платформа по созданию API на все случаи жизни
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!