Даже если вы разделите имя входа в отдельное приложение, у вас все равно будет дублированный код входа в систему, поскольку формы и контроллеры, использующие API, необходимо будет дублировать. Если вы не используете общую библиотеку для инкапсуляции общей функциональности. Тогда вам нужно больше функций, наворотов. Если вы идете по этому пути достаточно долго, вы просто заново внедрите свое собственное квадратное колесо:)
Вместо этого вы можете просто использовать то, что люди уже создали.
Безусловно, самый простой способ - полностью удалить все это и поддерживать только openid.
Точно так же, как stackoverflow. В комплекте с некоторым умным генерацией openid-from-provider-and-username (опять же, как stackoverflow) это может вместить почти любого, хотя это потребует немного больше работы (но не так много, правила генерации должны быть очень тривиальными).
Если вам действительно нужна стандартная форма входа для пользователя / пароля и вы просто хотите иметь централизованных пользователей db, вы все равно можете использовать openid за кулисами (см. ruby-openid для реализации клиентской и серверной частей) или просто используйте более простое решение CAS (например, ruby-cas )