кто-нибудь тестировал - будет ли authlogic работать с oauth-plugin (https://github.com/pelle/oauth-plugin) или нет?
authlogic и oauth-plugin
Ответы (3)
Короткий ответ - нет. В настоящее время я интегрирую поставщика услуг oauth-plugin с моей собственной системой аутентификации (которая предшествовала authlogic, plays_as_authenticated и всем остальным).
Поставщик услуг oauth-plugin работает с помощью генератора кода, генерирующего два контроллера, которые затем привязываются к некоторым файлам библиотеки в подключаемом модуле. Все эти файлы ожидают login_required
метода класса с той же семантикой, что и actions_as_authenticated.
authlogic вообще не делает никаких предположений о ваших контроллерах, поэтому он не будет работать из коробки с oauth-plugin, однако это дизайнерское решение также означает, что это будет довольно легко чтобы структурировать ваши контроллеры ожидаемым образом. Следовательно, должно быть (возможно, тривиально) легко создать прокладку для поддержки oauth-plugin.
Однако в моем случае я решил запустить генератор, чтобы извлечь то, что мне нужно, из плагина и удалить сам плагин. Основная причина, по которой я это делаю, заключается в том, что у меня явно нет метода login_required
в моей системе аутентификации, поэтому мне пришлось бы обезьяно исправить библиотеку, чтобы заставить ее работать. Во-вторых, в плагине много всего ненужного. В-третьих, большая часть того, что действительно относится к библиотечному уровню, уже абстрагирована в собственно гем oauth, поэтому все, что находится в каталоге lib oauth-plugin, находится в этом Как ни странно, между сгенерированным кодом и реальной библиотекой нет ничего невозможного.
Я сейчас пытаюсь заставить это работать. Я просто накатил свой, используя методы authlogic, чтобы он работал хорошо. (Я пытаюсь заставить поставщика работать, поэтому authlogic-oauth мне не подходит)
Я буду редактировать по ходу
def logged_in?
return true if current_user
end
def login_required
return true if logged_in?
store_location
redirect_to new_user_session_path and return false
end
У Authlogic есть надстройка, специально разработанная для нее, которую можно найти здесь .