Лучшее решение для аутентификации в Ruby on Rails

Я ищу готовое решение, которое я могу использовать в своем приложении RoR. Я идеально ищу что-то похожее на аутентификацию ASP.NET Forms, которая обеспечивает проверку подлинности электронной почты, элементы управления подпиской и позволяет пользователям reset их пароли. О да, и легко позволяет мне вытащить пользователя, который в настоящее время зарегистрирован в приложении.

Я начал изучать уже написанные фрагменты, но я нашел, что это действительно запутывает. Я посмотрел на LoginGenerator, RestfulAuthentication, SaltedLoginGenerator, но, похоже, не одно место, у которого есть отличные уроки или их сравнение. Если есть сайт, который я просто еще не обнаружил, или если есть стандарт де-факто, который используется большинством людей, я был бы признателен за помощь.

Ответ 1

AuthLogic кажется новым ребенком на блоке и, похоже, является следующей эволюцией restful_authentication, проще в использовании и т.д.

http://github.com/binarylogic/authlogic/tree/master

Изменить: теперь, когда Rails 3 отсутствует, Devise кажется новым, новым ребенком на блоке

https://github.com/plataformatec/devise или я уже начал свою собственную аутентификацию с помощью has_secure_password, встроенного в Rails http://railscasts.com/episodes/250-authentication-from-scratch-revised

Боковое примечание: Ruby Toolbox - отличный сайт для поиска текущего лучшего решения в различных категориях (в зависимости от количества наблюдателей GitHub):

http://ruby-toolbox.com/categories/rails_authentication.html

Ответ 2

Я бы порекомендовал Restful Authentication. Я думаю, что это в значительной степени стандарт де-факто.

Ответ 3

Для действительно простого решения перейдите с Clearance.

Если вы ищете дополнительные опции Devise - отличное решение. Он использует Warden, который является системой проверки подлинности на стойке.

Ответ 4

Я также хотел бы отметить отличный учебник/обсуждение о расширении основных функциональных возможностей Restful Authentication, если вы ищет что-то более надежное.

Ответ 5

Там также RestfulOpenIDAuthentication, если вы хотите, чтобы поддержка OpenID в дополнение к поддержке паролей.

Ответ 6

Просто примечание: LoginGenerator и SaltedLoginGenerator были заменены на Restful Authentication и не поддерживаются в новых версиях Rails - не тратьте время на них, хотя в то время они были великолепны.

Ответ 7

AuthLogic кажется тем, что вы хотите для этого. Он очень настраиваемый, и хотя он не генерирует код для вас, он довольно прост в использовании. Для проверки подлинности электронной почты и восстановления пароля вы, вероятно, захотите использовать столбец :perishable_token. AuthLogic позаботится об этом, вам понадобится reset, когда он будет использоваться. Для получения информации о том, как настроить базовое приложение, вы можете взглянуть на Ryan Bates Railscast на AuthLogic и "официальный" пример приложение. Бен Джонсон, создатель AuthLogic, также написал сообщение в блоге о том, как использовать пароли reset.

К сожалению, я не могу опубликовать более одной ссылки, но ссылки на railscast, запись в блоге reset и пример приложения находятся в README (см. репозиторий AuthLogic для README)дел >

Обновление: теперь я могу разместить больше ссылок, поэтому я связал еще несколько. Спасибо marinatime за добавление ссылки в это время

Ответ 8

Мне очень нравится раздумье. Очень простой и имеет несколько хороших крючков и можно проверить.

Ответ 9

restful_authentication - это мощный инструмент, который очень гибкий и обеспечивает большую часть того, что вы ищете из коробки. Однако, пара предостережений:

  • Не думайте с точки зрения "контроля". В Rails Model, View и Controller гораздо более независимы, чем в ASP.NET в стиле Webforms. Вырабатывайте то, что вы хотите от каждого слоя самостоятельно, пишите тесты/спецификации, чтобы они соответствовали друг другу, и убедитесь, что каждый слой делает то, что вы ожидаете.
  • Даже если вы используете плагин, нет никакой замены для чтения (по крайней мере некоторого) генерируемого кода. Если у вас есть идея с большой картинкой о том, что происходит под капотом, вы легко найдете отладку и настройку.

Ответ 10

Плагин restful_authentication и другие плагины, которые его расширяют, прекрасно отвечают вашим потребностям. Быстрый поиск на github.com покажет много учебников, примеров и экстенситонов. Просто зайдите сюда:
- http://github.com/search?q=restful_authentication

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

Эта информация должна быть достаточной, чтобы вы начали находить головы и хвосты... удачи.

Ответ 11

Просто обновляя это: Ryan Bates 'Railscast # 250 показывает создание системы аутентификации с нуля....

Ответ 12

Еще одно голосование за оформление - возможно, не такое настраиваемое, как "в", как аутлогистика, но с точки зрения того, что вы можете просто отбросить его на место и пойти, это определенно стоит посмотреть.