authlogic и oauth-плагин
-
05-07-2019 - |
Вопрос
кто-нибудь тестировал - будет работать с oauth-плагином ( https://github.com/pelle) / oauth-plugin ) или нет?
Решение
Короткий ответ: нет . В настоящее время я интегрирую сервис-провайдеры oauth-plugin с моей собственной системой аутентификации (которая предшествует authlogic , acts_as_authenticated и всем остальным). р> Поставщик услуг
oauth-plugin работает с помощью генератора кода, генерирующего два контроллера, которые затем связываются с некоторыми библиотечными файлами в плагине. Все эти файлы ожидают использования метода класса login_required
с той же семантикой, которую использует acts_as_authenticated .
authlogic не делает никаких предположений о ваших контроллерах, поэтому он не будет работать "из коробки" с oauth-plugin , однако это дизайнерское решение также означает, что оно будет довольно легко структурировать контроллеры ожидаемым образом. Поэтому должно быть (возможно, тривиально) легко создать оболочку для поддержки oauth-plugin .
Однако в моем случае я решил запустить генератор, чтобы извлечь из плагина то, что мне нужно, и удалить сам плагин. Основная причина, по которой я это делаю, заключается в том, что у меня явно нет метода login_required
в моей системе аутентификации, поэтому мне пришлось бы пропатчить библиотеку, чтобы заставить ее работать. Во-вторых, в плагине есть много вещей, которые мне просто не нужны. В-третьих, большая часть материала, который действительно является библиотечным, уже абстрагирована в собственно гем oauth , поэтому материал, находящийся в каталоге oauth-plugin lib, находится в этом Странно, не человеческая земля между сгенерированным кодом и реальной библиотекой.
Другие советы
Я сейчас пытаюсь заставить это работать. Я просто катал свои собственные, используя аутентичные методы, чтобы заставить его играть хорошо. (Я пытаюсь заставить провайдера работать, поэтому 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 имеет специальное дополнение, специально разработанное для него, которое можно найти здесь здесь а>. р>