omniauth vs. oauth-плагин - PullRequest
       17

omniauth vs. oauth-плагин

10 голосов
/ 16 июля 2011

Я пытаюсь выяснить разницу между omniauth (https://github.com/intridea/omniauth) и oauth-plugin - (https://github.com/pelle/oauth-plugin)

Я просто ищу способ разрешить моим пользователям проходить аутентификацию с помощью (Twitter, Facebook и т. Д.) В моем приложении.

Я знаю, что omniauth это обеспечивает, но я использую rails 2.3.10, который, как я полагаю, не поддерживается omniauth. Могу ли я использовать oauth-плагин? Похоже, что у него гораздо меньше зависимостей. Любые мысли приветствуются.

Ответы [ 2 ]

24 голосов
/ 02 августа 2011

Я должен не согласиться с предыдущими ответами.

oauth-plugin - это

плагин для реализации OAuth Провайдеры и Потребители в Rails приложениях. 1

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

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

Конкретно, это означает, что вы настроили две конечные точки (/auth/:provider и /auth/:provider/callback), сделали так, чтобы ваш пользователь проходил аутентификацию у провайдера, а взамен получили хэш с информацией о пользователе.

TL; DR

Если вам нужно только обеспечить аутентификацию через Facebook / Twitter / OAuth / и т. Д. (Т. Е. Вы хотите быть пользователем OAuth ), тогда omniauth определенно более легкий.

Если вы хотите запустить OAuth-провайдера, oauth-plugin может быть более простым, но, на мой взгляд, он гораздо более раздутый, так как он внедряет в ваше приложение много лишнего кода.

3 голосов
/ 26 июля 2011

Omniauth - это мега-авторизационный камень, предоставляющий вам доступ к процессам OAuth для всего списка веб-сервисов (Twitter, Facebook, Foursquare, Gowalla, Netflix, YouTube и т. Д.), Поэтому вы можете вызывать определенные функции длякаждый сервис и быстро его настройте.

Упомянутый вами плагин oauth, кажется, просто настраивает вас с общей настройкой OAuth, и вам придется самостоятельно настраивать API для каждого сервиса.Более легкий, поэтому, если вам нужны только службы Twitter, например, это может быть лучшим способом, хотя я все же, вероятно, поищу Omniauth, чтобы увидеть, насколько велика потеря производительности, потому что это будет многопроще в использовании.

...