Создать собственную систему входа в систему или использовать что-то еще вроде devise?

#ruby-on-rails #ruby-on-rails-3 #devise

#ruby-на-рельсах #ruby-on-rails-3 #придумать #ruby-on-rails #разработать

Вопрос:

Я начинаю создавать веб-сайт и хочу настроить простой вход в систему. Я буду использовать ruby on rails, и мне интересно, должен ли я создать свой собственный вход в систему или использовать что-то вроде devise? Я также хочу интегрировать facebook log in, чтобы, если пользователь авторизует его, поля имени и электронной почты автоматически заполнялись данными, которые я получаю от facebook. Затем им просто нужно будет ввести пароль для завершения входа в систему.

Комментарии:

1. Devise и OmniAuth прекрасно интегрируются, если вам нужна поддержка Facebook. Есть RailsCast, который демонстрирует это. Правильно выполнять аутентификацию сложно, и вам не следует изобретать ее заново.

Ответ №1:

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

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

Комментарии:

1. Как упоминает Пол ниже, существует множество лучших практик, о которых существующие библиотеки позаботятся за вас … например, правильное хеширование и соление… и многое другое. Создание собственного означает, что вы либо знаете все методы обеспечения безопасности, либо создадите небезопасное приложение.

Ответ №2:

Обязательно используйте devise; для вас уже реализовано множество лучших практик, особенно если вы позже захотите использовать FB auth или OAuth.