我正在构建一个辅助网络应用程序(App1),它基本上消耗了另一个(密切相关的)网络应用程序(App2)的一小部分API。我希望能够在两个服务之间共享身份验证,但让App2进行实际身份验证。登录App1的用户将使用他们的App2凭据登录,并且App1无权访问App2的用户数据库。
关闭袖口,我设想了一个非常简单的系统,其中App1将其/ login路由到App2的/ login端点,App2返回一个令牌,然后可以通过App1将其用于针对其API的进一步经过身份验证的请求。这是Passportjs开箱即用/通过策略支持的东西吗?在这种情况下,我最好使用Passportjs还是编写自己的身份验证逻辑?
注意:在这种情况下的一个限制是App1无法访问App2的内部。它可以访问的唯一功能是可公开访问的API端点。