我已经开发了几个具有自己的登录表单/逻辑等的Web应用程序。我想通过创建一个专用的 Web 应用程序来处理使用 FirebaseUI 的所有登录逻辑来简化这些操作。我想象这种工作方式是当用户需要使用我的一个应用程序登录时,他们会被重定向到我的登录 Web 应用程序。用户提供其凭据,如果成功,登录应用程序将重定向回原始应用程序,其中包含数据以确认登录是否成功。
如果可能的话,我不必在我的其他 Web 应用程序中重复登录逻辑,并且只有在我的登录应用程序中才需要对登录代码进行任何更改。但是,我不确定这种方法是否可行,或者我如何安全可靠地让每个 Web 应用程序确定用户已成功登录。任何人都可以就如何实现这一点提供建议或指出已经这样做的例子吗?
您可能正在寻找单点登录。
谷歌也做了类似的事情。每次登录时,您都会被重定向到accounts.google.com
,然后您会被重定向到您的应用程序。
你说得对,它比乍一看更棘手。大多数网络登录系统都基于 cookie 和围绕它们的整个客户端-服务器进程。Cookie 是按域设置的。如果所有 Web 应用都位于单个域的同一域或子域中,则应该可以使用此方法并获得所需的结果。如果没有,您将需要一些额外的工作来获取来自不同域的代码以相互通信并使一切成为可能。
一般来说,如果从头开始设计登录系统被认为是一个巨大的吞噬,那么设计一个单点登录系统就要困难一个数量级。OWASP在2011年对他们这样说。