Лучшее решение для аутентификации в Ruby on Rails [закрыто]
-
09-06-2019 - |
Вопрос
Я ищу готовое решение, которое я мог бы использовать в своем приложении RoR.В идеале я ищу что-то похожее на аутентификацию ASP.NET Forms, которая обеспечивает проверку электронной почты, элементы управления регистрацией и позволяет пользователям сбрасывать свои пароли.О да, и легко позволяет мне вытащить пользователя, который в данный момент вошел в приложение.
Я начал изучать уже написанные фрагменты, но обнаружил, что это действительно сбивает с толку.Я просмотрел LoginGenerator, RestfulAuthentication , SaltedLoginGenerator, но, похоже, нет ни одного места, где были бы отличные руководства или предоставлялось бы их сравнение.Если есть сайт, который я просто еще не обнаружил, или если существует стандарт де-факто, которым пользуется большинство людей, я был бы признателен за помощь.
Решение
AuthLogic, похоже, новичок в блоке и, похоже, является следующей эволюцией restful_authentication, более простой в использовании и т. Д
http://github.com/binarylogic/authlogic/tree/master
Редактировать:теперь, когда Rails 3 вышел, Devise, похоже, новенький в этом квартале
https://github.com/plataformatec/devise
или я теперь запускаю свою собственную аутентификацию с помощью has_secure_password
встроенный в рельсы http://railscasts.com/episodes/250-authentication-from-scratch-revised
Боковое примечание:Ruby Toolbox - отличный сайт для поиска наилучшего на данный момент решения в различных категориях (в зависимости от количества просмотров GitHub).:
http://ruby-toolbox.com/categories/rails_authentication.html
Другие советы
Я бы действительно рекомендовал Повторная аутентификация.Я думаю, что это в значительной степени стандарт де-факто.
Для действительно простого решения используйте Полная распродажа.
Если вы ищете дополнительные варианты Придумать это отличное решение.Он использует Warden, который представляет собой систему аутентификации на основе стойки.
Есть также RestfulOpenIDAuthentication ( Проверка подлинности restfulopenid ) если вам нужна поддержка OpenID в дополнение к поддержке паролей.
Просто обратите внимание, LoginGenerator и SaltedLoginGenerator были заменены Restful Authentication и не поддерживаются в более новых версиях Rails - не тратьте на них время, хотя в то время они были великолепны.
Я также хотел бы отметить отличную учебное пособие /обсуждение о расширении основной функциональности Restful Authentication, на случай, если вы ищете что-то более надежное.
Мне действительно нравится разрешение thoughtbot.Очень простой, имеет несколько хороших зацепок и поддается тестированию.
Аутентичный кажется, это то, что вы хотите для этого.Он очень настраиваемый, и хотя он не генерирует код за вас, он довольно прост в использовании.Для проверки электронной почты и восстановления пароля вы, вероятно, захотите использовать :perishable_token
колонна.AuthLogic позаботится об этом, вам нужно только сбросить его, когда он используется.Для получения информации о том, как настроить базовое приложение, вы можете ознакомиться с работой Райана Бейтса Railscast на AuthLogic, и "официальный" пример приложения.Бен Джонсон, создатель AuthLogic, также написал сообщение в блоге о том, как восстановить пароли.
К сожалению, я не могу опубликовать более одной ссылки, но ссылки на railscast, сообщение в блоге о сбросе пароля и пример приложения находятся в README (см. репозиторий AuthLogic для README)
Обновить:Теперь я могу размещать больше ссылок, поэтому я связал еще несколько.Спасибо вам, marinatime, за то, что тем временем добавили ссылку
restful_authentication - это мощный инструмент, который является очень гибким и предоставляет большую часть того, что вы ищете "из коробки".Однако есть пара предостережений:
- Не думайте в терминах "контроля".В Rails модель, представление и контроллер намного более независимы, чем в "Webforms-стиле" ASP.NET.Определите, чего вы хотите от каждого слоя независимо, напишите соответствующие тесты / спецификации и убедитесь, что каждый слой выполняет то, что вы ожидаете.
- Даже если вы используете плагин, ничто не заменит чтение (по крайней мере, некоторой части) сгенерированного кода.Если у вас есть общее представление о том, что происходит под капотом, вы обнаружите, что отладка и настройка намного проще.
Плагин restful_authentication и другие плагины, которые его расширяют, идеально отвечают вашим потребностям.Быстрый поиск по github.com откроет множество руководств, примеров и дополнений.Просто иди сюда:
- http://github.com/search ?q=restful_authentication (повторная проверка подлинности)
Есть несколько проектов, которые используют restful_authentication только для того, чтобы предоставить примеры простого приложения Rails, содержащего только части аутентификации.
- http://github.com/fudgestudios/bort -- Базовое приложение rails с:Повторная аутентификация
- http://github.com/mrflip/restful_authentication_example -- Еще один проект с отличным примером того, как использовать restful_authentication
- http://github.com/activefx/restful_authentication_tutorial -- То же, что и выше, с некоторыми другими плагинами в комплекте.
- http://railscasts.com/episodes/67-restful-authentication -- отличный скринкаст, объясняющий restful_authentication
Этой информации должно быть достаточно , чтобы вы начали находить орла и решку ...удачи.
Просто обновляю это:Райан Бейтс' Рельсовый выпуск #250 показано создание системы аутентификации с нуля....
Еще один голос за Clearance - возможно, не такой настраиваемый или "in", как authlogic, но с точки зрения возможности просто установить его на место и уйти, на него определенно стоит взглянуть.