LINUX.ORG.RU

[RoR 3]Посоветуйте плагин для аутентификации пользователей


0

1

Для нескольких проектов появилась необходимость использовать RoR 3, хоть я в этом и не спец, а только начинающий.
Задача тривиальна(не для многих, увы, но тем не менее): дать пользователям возможность идентифицироваться через сторонние системы(openid, oauth, openapi etc) и через локальную(с регистрацией и аутентификацией через мыло, например).
Главное требование: удобство.
1) Не хочу писать всё это с нуля(разве что плагины для open api и остальных специфичных систем).
2) Не хочу чтобы для каждой из систем создавалась отдельная таблица(одной достаточно всегда, хотя если в остальном всё ок, то потерплю если на каждую систему будет по таблице).
3) Хорошая документация(как минимум, тутор start-and-go).

Пока больше всего подходит OmniAuth, но он слишком минималистичен. Я готов писать некоторые вещи с нуля на пайтоне, но если это RoR, то хочется чтобы «всё было».
Authlogic я откинул т.к. плагины старые, ужасные, сам plugin api не так красив и если на что AL и годен, так только на локальную аутентификацию.
Думаю попробовать Devise, но говорят что под третьими рельсами оно не тестировалось и само по себе очень статично и громоздко.


Полагаю, Devise + OmniAuth всё же будет оптимальным выбором. Devise работает под третьими рельсами без особых проблем — посмотри на гитхабе, насколько часто он обновляется. А чего в OmniAuth не хватает?

Apple-ch ★★
()
Ответ на: комментарий от Apple-ch

Не хватает того, чтобы он искаропки давал возможность авторизации пользователей через несколько систем.
http://railscasts.com/episodes/241-simple-omniauth
Вроде как просто, но только если «you don't need username/password or multiple authentications per user». Первое даёт Devise, а вот второе...

tia
() автор топика
Ответ на: комментарий от UserUnknown

Можно ссылку? Гугл молчит.

tia
() автор топика
Ответ на: комментарий от yltsrc

Вообще я так и думал что решением будет Devise+omniauth, но подожду, может что ещё посоветуют.

tia
() автор топика

Вы таки решили перебраться с питона на руби? Интересно было бы услышать почему.

anonymous
()

>Думаю попробовать Devise, но говорят что под третьими рельсами оно не тестировалось и само по себе очень статично и громоздко.

кто говорит? всё отлично работает

anonymous
()

>Не хочу писать всё это с нуля(разве что плагины для open api и остальных специфичных систем).

Помилуйте! Это же элементарно!

moscwich
()
Ответ на: комментарий от anonymous

Нет, конечно. Просто для получения $$$ проще изучить руби и рельсы, поскольку небольшие заказы на RoR действительно быстрее и проще делать.
Я сам к этому отнёсся не очень хорошо, но просто пришлось так поступить.
С другой стороны, я получил возможность изучить такой язык и такую платформу! Теперь я столько смогу интересного оттуда взять в пайтон и свой фреймворк приложений!
На самом деле я сейчас на своём опыте понял что руби удобнее, красивее, функциональнее пайтона. Однако! Там очень много мусора, настоящих уродств, неоднозначностей, показателей непрофессионализма(может и грубовато, но в стремлении сделать одни вещи, были упущены другие, например) его авторов.
Да и сами рельсы ужасны, вот только на них много уже сделано и проще написать проект на них, чем на пайтоне.

Итог: если нет свободного времени, то легче выучить руби и рельсы, если чувство идеального велико и ты хочешь что-то сделать красиво, то пайтон.
И да, ещё один момент: руби имеет смысл учить только ради рельс. Если делаешь что-то прикладное, консольное, сетевое, но не веб, то лучше пайтон.

tia
() автор топика
Ответ на: комментарий от moscwich

Я понимаю что это не сложно, просто это дело принципа. С нуля я и на пайтоне напишу, но если я юзаю руби и рельсы, то хочу чтобы всё было легко и просто.

tia
() автор топика
Ответ на: комментарий от tia

>Однако! Там очень много мусора, настоящих уродств, неоднозначностей, показателей непрофессионализма(может и грубовато, но в стремлении сделать одни вещи, были упущены другие, например) его авторов

чисто из интереса: будьте добры, приведите примеры вышеукзанного

anonymous
()
Ответ на: комментарий от anonymous

В руби есть модули. В модулях могут быть функции, переменные и классы. Да что угодно. Однако доступ к ним разный: к функциям и классам через A.func/A.Class, а к переменным через A::SomeVar.
Это дикий, дикий бред и уродство. Возможно, остальное покрывает данную бредятину, но оно есть и хорошо показывает на сколько руби уродлив.

В руби есть аж 3 варианта объявления блоков кода: block, lambda, proc.
Последние два почти никак не отличаются друг от друга, однако разделены.
Первый - стандартный блок описания кода do ... end.
При этом, при создании блока через proc или lambda, их нельзя вызвать прямо сразу, как в пайтоне, для этого нужно вызывать их метод call.
В руби это три принципиально разные объекты с разными методами обращения(кроме proc с lambda, у которых почти всё 1 в 1), когда в пайтоне лямбда и обычные блоки кода идентичны по функционалу.
Сразу видно что создатель фукнционала сначала сделал proc, а потом услышал о неких «лямбдах» и кто-то ему сказал что в его языке их нет. Тот не сообразил и сделал копию proc и назвал её лямбдой, в последствии изменив немного поведение.
Тоже самое с замыканиями вообще(т.е. с оператором yield).

Стоит обратить внимание на то, что у руби очень скудные средства для создания DSL. У той же джавы в разы больше возможностей.
А ещё, руби на самом деле такой же пайтон по объектной модели(т.е. он не более «объектный» чем пайтон), только есть несколько различий:
1) Стандартные типы подвержены изменениям извне(как я понял, они локальны).
2) Все глобальные функции становятся функциями базового класса object, т.е. если в пайтоне созданные функции становятся функциями модуля, то в руби они становятся функциями класса object и становятся доступны у любого объекта. Удобно, конечно, но это всё, из-за чего могут люди соваться с руби как с «более ООП'шным ЯП».

В руби ясно видна одна идея - избавиться от скобочек. Избавившись от скобочек, создатель языка забыл о других, более сложных проблемах.

Сами рельсы меня пугают своими костылями и «умностью», которая стоит разработчикам огромного оверхеда. Такой «ум» не нужен в языке, нельзя рассчитывать на то, что функции ничего не стоят по времени.

tia
() автор топика
Ответ на: комментарий от anonymous

> чисто из интереса: будьте добры, приведите примеры вышеукзанного

Нашел кого спрашивать - это же живой аналог яндекс.рефератов на лоре. А так посмотри видео Python vs. Ruby: A Battle to The Death.

anonymous
()
Ответ на: комментарий от tia

простите уважаемый, но в Руби нихрена не знаете

Это дикий, дикий бред и уродство. Возможно, остальное покрывает данную бредятину, но оно есть и хорошо показывает на сколько руби уродлив.

уродство - вещь относительная, кому-то и С++ нравится. Встречный вопрос: есть ли языки в которых данная вещь реализована лучше?

Стоит обратить внимание на то, что у руби очень скудные средства для создания DSL. У той же джавы в разы больше возможностей.

гомерический хохот.

А ещё, руби на самом деле такой же пайтон по объектной модели(т.е. он не более «объектный» чем пайтон)

почитайте что-ли про объектную модель Руби и Питона, откуда они в языках произошли. Узнаете для себя много нового

В руби ясно видна одна идея - избавиться от скобочек.

и как, избавился? Идея избавится от скобочек - это Питон

Такой «ум» не нужен в языке,

тебе не нужен - не использую, а многим людям реально облегчил жизнь

нельзя рассчитывать на то, что функции ничего не стоят по времени.

а еще можно писать на ассемблере, но это геморойно и дорого, хороший сервер лучше. А еще можно написать хороший интерпритатор(посмотри на досуге бенчмарки MacRuby

anonymous
()
Ответ на: комментарий от tia

> Толсто и глупо. Изволь удалиться, никчёмный анонимус.

Толсто и глупо рассуждать с умным видом о языке, о котором весьма мало и мало знаете. Но хотя, чего от тебя еще было ожидать?

anonymous
()
Ответ на: комментарий от anonymous

>уродство - вещь относительная, кому-то и С++ нравится.
Не пытайся защитить руби.

Встречный вопрос: есть ли языки в которых данная вещь реализована лучше?

Да, пайтон.

гомерический хохот.

Над собой?

почитайте что-ли про объектную модель Руби и Питона, откуда они в языках произошли. Узнаете для себя много нового

Я уже узнал что рубисты способны с пеной у рта говорить что только руби полноценно поддерживает ООП, что всё в нём объекты etc. Это всё надуманный бред из-за пары фишек, которые работают так а не иначе по причине, которая объясняется с употреблением слова «объектный».

и как, избавился? Идея избавится от скобочек - это Питон

Идиот. Не думая что ты хоть пытался изучить пайтон, раз такие вещи говоришь.

а еще можно писать на ассемблере, но это геморойно и дорого, хороший сервер лучше

А еще можно написать хороший интерпритатор(посмотри на досуге бенчмарки MacRuby


Синтетика не интересна. Она и на пайтоне шустра. Вопрос в реальных разработках. В рельсах очень много «ума», который сделан черег огромный оверхед. С этим и опытные рубисты не спорят.
Ну ты споришь, думаю понятно что ты либо ничего не знаешь о руби, либо просто глупый идиот/фанатик.

tia
() автор топика
Ответ на: комментарий от anonymous

Я то знаю, в отличии от тебя. А чего можно было ещё ожидать от трусливого анонимуса, который называет пайтон языком с целью избавиться от скобочек?

tia
() автор топика
Ответ на: комментарий от tia

В рельсах очень много «ума», который сделан черег огромный оверхед

Да вес этот «ум» в рельсах на юношеский макисмализм сами знаете кого смахивает. Бросил я рельсы из-за этого.

dizza ★★★★★
()

Так и знал что этот зассанец вконец обголодает и станет тянуть ручки туда где много платят.

Руки убрал от руби, знаешь ты его еще хуже чем питон, и исправлять потом за мудаками вроде тебя никакого кайфа не приносит ( хоть и платят за это неплохо ).

anonymous
()
Ответ на: комментарий от tia

>>Встречный вопрос: есть ли языки в которых данная вещь реализована лучше?

Да, пайтон.

Синтаксис "::" используется для разыменования констант в модуле. В питоне нет констант.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.