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

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

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

23.08.2008 15:27:11
12 ОТВЕТОВ
РЕШЕНИЕ

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

83
11.10.2012 19:42:49
Я бы действительно подумал об использовании authlogic. это намного чище, чем restful_auth. Authlogic извлек уроки из всех предыдущих решений и переупаковал их в более чистое, более настраиваемое решение
taelor 17.05.2009 21:57:31
Я воспользовался вашим советом и пошел с Authlogic, и мне очень приятно. Установка может занять немного больше времени, что очень чисто и легко для понимания. Там нет страшных куч сгенерированного кода.
Guy C 17.07.2009 15:23:58
Да, это определение занимает больше времени для установки. Хотелось бы, чтобы он удалил там немного абстракции и поставил с вещами, которые всем нужны, такими как забытый пароль, а также с подтверждениями по электронной почте. Но в целом, это все еще довольно хорошо.
Brian Armstrong 17.07.2009 21:46:43
Я также смог объединить его с OpenID и RPXNow, что получилось потрясающе, пример здесь: Customersvote.com/user_session/new
Brian Armstrong 17.07.2009 21:47:30
Пример проекта позволяет очень легко начать работу. Просто скопируйте репозиторий, скопируйте в файл database.yml, и сайт полностью аутентифицирован.
Casey Watson 22.10.2010 05:27:23

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

21
23.08.2008 15:33:44
Я бы поддержал это. Недавно мне пришлось реализовать довольно сложную систему многосайтовой аутентификации, в основе которой лежал дизайн RestfulAuth, предоставляющий тот же API-интерфейс для остальной части приложения, что и RA, безусловно, хороший, понятный, простой в работе API с простым читать код :-)
Laurie Young 20.09.2008 16:03:42

Существует также RestfulOpenIDAuthentication, если вы хотите поддержку OpenID в дополнение к поддержке пароля.

3
23.08.2008 16:46:52

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

3
1.09.2008 06:02:50

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

3
5.09.2008 01:59:58
Пожалуйста, не думайте, что я ужасно груб, но я считаю, что запись на форуме является примером худшей части Restful Authentication. Существует множество отсутствующих функций, и здесь представлен очень длинный (и противоречивый) набор шагов для добавления этих функций по одному за раз. Какова бы ни была противоположность DRY, я уверен, что это так. Только вы не повторяете себя, вы повторяете сотни других разработчиков, чтобы включить то, что должно было быть включено или необязательно для RA с самого начала.
John Munsch 6.12.2009 05:49:10

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

  1. Не думайте с точки зрения «контроля». В Rails Модель, Представление и Контроллер гораздо более независимы, чем в ASP.NET в стиле веб-форм. Определите, что вы хотите от каждого слоя независимо, напишите соответствующие тесты / спецификации и убедитесь, что каждый слой выполняет то, что вы ожидаете.
  2. Даже если вы используете плагин, ничто не заменит чтение (по крайней мере, части) сгенерированного кода. Если у вас есть общее представление о том, что происходит под капотом, вы обнаружите, что отладка и настройка гораздо проще.
2
19.09.2008 21:54:02

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

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

  1. http://github.com/fudgestudios/bort - базовое приложение с поддержкой RESTful-аутентификации
  2. http://github.com/mrflip/restful_authentication_example - еще один проект с большим примером использования restful_authentication
  3. http://github.com/activefx/restful_authentication_tutorial - То же, что и выше, с некоторыми другими плагинами в комплекте.
  4. http://railscasts.com/episodes/67-restful-authentication - отличный скринкаст, объясняющий restful_authentication

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

2
20.09.2008 01:13:38

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

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

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

3
2.06.2010 21:04:10
Ссылка Railscast - railscasts.com/episodes/160-authlogic
martinatime 30.05.2010 16:11:01

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

3
8.02.2010 17:59:52

Еще один голос за «Распродажу» - возможно, не такой настраиваемый или как «in», как authlogic, но с точки зрения возможности просто поставить его на место и уйти, определенно стоит посмотреть.

0
22.05.2010 05:52:09

Для действительно простого решения используйте « Распродажу» .

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

10
20.04.2013 04:49:31
Я могу поручиться за Devise. Я настроил это в своем приложении и могу сказать, что им легко пользоваться, по крайней мере, для меня, как относительного новичка. Я написал в блоге о своем опыте с этим здесь: therealmattslay.blogspot.com/2010/06/…
MattSlay 16.06.2010 17:03:17
Извините ... Вот исправленная ссылка: mattslay.com/devise-authentication-for-rails
MattSlay 9.05.2016 02:20:50

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

2
20.09.2012 20:22:47
Несмотря на то, что RailsCast в специальной системе аутентификации великолепен (и я реализовывал подобную систему несколько раз), он ни в коем случае не является предварительно собранным и не предоставляет всех функций, которые имеет такая установка, как Devise.
Colin R 20.09.2012 20:49:07
Согласен, но Devise может быть довольно громоздким. На мой взгляд, можно сэкономить много времени и душевных страданий, создав собственную систему аутентификации, если вы не собираетесь в полной мере использовать возможности, которые предлагает Devise.
Adam Jonas 24.09.2012 17:03:05
Я ищу готовое решение, которое я могу использовать в своем приложении RoR.
Colin R 24.09.2012 17:34:28