Я разработал несколько веб-приложений с собственными формами / логикой входа в систему и т. д. Я хотел бы упростить их, создав одно специальное веб-приложение для обработки всей логики входа с использованием FirebaseUI. Как я представляю, это работает, когда пользователю нужно войти в систему с одним из моих приложений, они перенаправляются в мое веб-приложение входа в систему. Пользователь предоставляет свои учетные данные, и в случае успеха приложение входа в систему перенаправляет обратно в исходное приложение с данными, чтобы подтвердить, был ли вход в систему успешным.
Если это возможно, мне не придется повторять логику входа в систему в других моих веб-приложениях, и любые изменения кода входа в систему требуются только в моем приложении входа. Однако я не уверен, возможен ли такой подход или как я могу безопасно и безопасно позволить каждому веб-приложению определять, что пользователь успешно вошел в систему. Может ли кто-нибудь дать совет о том, как реализовать это, или указать примеры, где это уже сделано?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Возможно, вы ищете Единая точка входа.
Google делает нечто подобное. Каждый раз, когда вы входите в систему, вы перенаправляетесь на accounts.google.com, а после этого перенаправляетесь в свое приложение.
Вы правы, говоря, что это сложнее, чем кажется на первый взгляд. Большинство систем входа в Интернет основаны на файлах cookie и на всем их клиент-серверном процессе. Файлы cookie устанавливаются для каждого домена. Если все ваши веб-приложения находятся в одном домене или поддоменах одного домена, вы должны быть в порядке, чтобы использовать этот подход и получить желаемые результаты. В противном случае вам понадобится дополнительная работа, чтобы получить код из разных доменов, чтобы общаться друг с другом и делать все возможное.
В общем, если создание системы входа в систему с нуля считается большой задачей, создание системы единого входа будет на порядок сложнее. OWASP имел о них это сказать в 2011 году.
Я бы сказал, что большинство разработчиков, веб или нет, не пишут систему входа в систему, не говоря уже о системе единого входа. Последний случай довольно редок в общей схеме вещей, и обычно его используют крупные компании. Я бы сказал, что любое дублирование кода, превышающее коэффициент 2-3, потребует использования единого входа.
Спасибо за ответ! Я бы определенно подумал о том, чтобы хранить приложения в одном домене. Моя цель, я полагаю, состоит в том, чтобы уменьшить дублирование кода, которое у меня сейчас есть с несколькими потоками входа. Как вы думаете, большинство разработчиков избегают подхода единого входа, потому что проще просто предоставить каждому приложению собственный логин?