2016-01-27 6 views
0

Я создаю приложение в Ruby on Rails и занимаюсь разработкой Devise, Omniauth и создаю собственную собственную версию.Аутентификация: Пользовательская или сторонняя сторона

Мой вопрос: каковы сценарии, в которых вы использовали бы один из трех вариантов выше?

Мое мнение: - OmniAuth может обеспечить быструю регистрацию через API для сторонних, но потребует дополнительных разрешений для доступа к дополнительным данным - Разрабатывают обеспечивает основные функциональные возможности, которые также могут быть настроены на основе приложений, необходимо - Выборочная может быть для экстремальные сценарии, которые в настоящее время, мне не нужны

** Я склоняюсь к Завещания, поскольку она обеспечивает ядро ​​и позволяет мне добавить на что

Дополнительные соображения: - Мое приложение должно войти в систему и доступ к основной информации для: location, lang uage I18n и т. д. - Мое приложение также выполняет финансовые операции (если вы платный член и др.).

Возвращаясь к моему вопросу: исходя из вышесказанного, действительно ли Devise является лучшим выбором? Предоставляет ли Omniauth эти функции? Когда я должен использовать один против другого?

Благодаря

ответ

2

Разрабатывают и OmniAuth делать очень разные вещи - и они часто используются вместе.

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

Omniauth является основой для пользователей аутентификации через Oauth. Omniauth в отличие от Devise не поставляется с какими-либо видами или контроллерами. Вместо этого вам необходимо интегрировать обратные вызовы Oauth в ваше приложение. То, что делает Omniauth, абстрагируется от различий между разными провайдерами.

Оба могут использоваться вместе для обеспечения аутентификации пользователей через пароль или, например, oauth.

Выполнение собственного решения для проверки подлинности обычно нецелесообразно. Проекты, такие как Devise, имеют сотни, если не тысячи человеко-часов позади них, и многие глаза смотрят на базу кода на наличие недостатков. Crappy home rollled auth solutions от компаний с Not Invented Здесь Syndrom являются одним из наиболее распространенных сбоев безопасности, которые приводят к утечке данных пользователя и паролей.

1

Чтобы добавить контекст ответа @max «s, OmniAuth является извлечение OAuth (Open Authorization) ...

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

Всякий раз, когда у вас есть доверенный услуг, таких как Facebook, Twitter, LinkedIn, GitHub, NetFlix, и т.д., и вы хотите использовать услугу в сочетании с предварительно встроенной связи на этих существующих услуг, вам будете нуждаться в безопасный способ „авторизовать“ использование этих данных ...

    система
  • а „CRM“, который позволяет „импортировать“ контакты из LinkedIn
  • А «социальный отправитель» система, которая позволяет отправлять сообщения своим Facebook друзей
  • Рекомендуют новые фильмы основаны на том, что вы недавно наблюдали на NetFlix

Большинство людей знают OAuth силу " Разрешить доступ к уведомлениям»для Facebook и т.д.:

enter image description here

Интерпретируя это самостоятельно приложение простое - вы хотите извлечь данные из Facebook/Twitter/LinkedIn/GitHub и т. д.?

Real использование OAuth должно быть расширить приложения.

enter image description here

Большинство пользователей лечить «запросы приложений» для своих данных социальных сетей, как расширение «социального» опыта (IE, если я разрешу app доступ к моим FB, я ожидаю, что это разместить на свою стену и т.д.).

Вместо того чтобы рассматривать его как способ, чтобы позволить пользователям войти в систему с Twitter/Facebook/LinkedIn полномочий (что 100% в силе), вы должны думать о функциональности более высокого уровня. !

-

Разрабатывают = OmniAuth

Завещание является аутентификации системы; OAuth авторизация.

OmniAuth расширяет OAuth для аутентификации:

OmniAuth это библиотека, которая стандартизирует аутентификации нескольких провайдеров для веб-приложений.

Он заменяет email/password с Twitter API key. Таким образом, всякий раз, когда вы создаете аутентификацию в своей системе, вам всегда нужно хранить данные User и т. Д. - это , как, что данные аутентифицированы, что делает разницу.

Короче говоря, если вы хотите Sign in with Twitter кнопки и т. Д., OmniAuth рекомендуется. Однако, чтобы ваша аутентификация была последовательной, you'll be best using Devisewith OmniAuth.

-

Наконец, не свернуть свои собственные аутентификации если вы не реализованы Devise по крайней мере 5 раз. Все проверки подлинности Rails работают аналогично (использует Warden strategies). Не стоит тратить время на отладку вашей собственной системы, когда Devise имеет 100 000 пользователей, которые работают над вами.

Смежные вопросы