Node.js 多个子域的身份验证

Node.js 多个子域的身份验证,node.js,backend,Node.js,Backend,大家下午好 在团队中,我们计划制作n个与其他应用程序非常不同的应用程序,但我们需要用户在一次验证中验证他对所有应用程序的访问权限 这些应用程序将位于单个域下 domain.com app1.domain.com app2.domain.com app3.domain.com 因此,我们希望实现一个与google非常类似的身份验证方案,其中管理另外两个子域: accounts.domain.com:处理所有身份验证规则,如登录、注册、忘记密码等 myaccount.domain.com:管理所有用

大家下午好

在团队中,我们计划制作n个与其他应用程序非常不同的应用程序,但我们需要用户在一次验证中验证他对所有应用程序的访问权限

这些应用程序将位于单个域下

domain.com app1.domain.com app2.domain.com app3.domain.com 因此,我们希望实现一个与google非常类似的身份验证方案,其中管理另外两个子域:

accounts.domain.com:处理所有身份验证规则,如登录、注册、忘记密码等

myaccount.domain.com:管理所有用户的个人信息、订阅、安全设置等

问题如下:

最安全和最好的方法是什么? 我们应该考虑哪些数据库级别的考虑因素? 我们应该考虑哪些一般性因素来避免 未来的问题? 值得一提的是,我们将使用的堆栈是nestjs+mongodb+graphql


非常感谢。

最简单、最安全的管理方法是使用访问服务的代理,而不是用户直接与服务通信。然后他们只需要针对代理进行身份验证


其他选项需要某种中央身份验证提供程序。假设您控制所有涉及的服务,可以通过多种方式实现这一点。根据您的需求,您可以使用共享的跨域cookie或某种oauth流。

Hi@Deadron。谢谢你的回答。我非常喜欢代理方法,但我有一个疑问。目前,我使用Angular作为前端,并将令牌保存在Localstorage中。将要进行的更改是,我应该创建一个跨域cookie并将其保存在本地存储中,而不是将令牌保存在本地存储中?@JuanGarcia如果您使用代理,这意味着您的前端仅与一个后端通信,您可以使用传统的基于cookie的会话管理。你不需要跨域cookie或任何特殊的东西,可以插入标准的身份验证系统。我会有几个前端应用程序,这意味着他们所有人都将与单个代理进行通信?@JuanGarcia如果他们都参与同一个身份验证系统并与同一组服务进行通信,那么除非有其他要求,我会说是的。好的,我明白了。非常感谢你。