0

我们开发了一个带有 Express NodeJS 后端的 React 应用程序,该应用程序通过使用 IBM App ID 的身份验证来保护。如果应用程序部署在仅运行 1 个实例的 Cloud Foundry 服务上,则在身份验证机制上一切正常。

出于性能和高可用性的原因,我们需要扩大实例的数量。不幸的是,一旦我们添加了一个实例,我们就会面临身份验证问题。在身份验证成功之前,我们在身份验证屏幕上循环了几次,我们可以访问应用程序。

有关信息,我们使用 Cloudant 数据库来存储会话。你有没有遇到过这个问题,你是如何解决的?感谢您的反馈意见。

4

1 回答 1

0

从技术上讲,您正在做的是正确的事情。

我之前遇到过这些问题,第一件事通常是本地会话处理 - 默认内存存储或某些基于文件的会话存储。正如您所说,您应该在 Cloudant 中有会话,但有时当您想要启用本地开发人员运行应用程序时,您可能需要一些开关来控制是否使用共享存储,以及是否使用 http 或 https用来。为什么 http vs https 很重要,你可能有 'cookie: { secure: true }' 在这种情况下需要翻转/翻转。接下来,您可能想要对登录尝试进行 http 跟踪,以查看您没有意外使用与开始时不同的主机名。如果您的 App ID 的 CALLBACK url 更改它,这很容易发生。这些可能仍然不是您的原因,如果是这样 - 然后设置 2 个实例环境,保存来自应用服务器的日志、来自浏览器的 http 跟踪并从 Cloudant 检查创建的会话。应该只创建一个会话,使用一个应用程序的 url,保存在浏览器中的相同会话 cookie。如果其中任何一个不加起来 - 那么你需要弄清楚为什么不加起来。

于 2021-04-14T16:07:54.067 回答