Node/PassportJS req.user 以 iOS 移动网络应用程序打开时未定义

Node/PassportJS req.user undefined when opened as iOS mobile web app

我构建了一个 Web 应用程序,它根据用户是否经过身份验证(通过简单地检查 req.user 是否已定义)为给定路由呈现不同的内容。

此外,我使用 <meta name="apple-mobile-web-app-capable" content="yes" /> 允许 iOS 用户直接从他们的主页以全屏模式打开应用程序。

虽然在传统浏览器(Web 和移动 Safari 以及 Chrome)上访问有问题的路由会显示正确的内容,但在全屏模式下访问 Web 应用程序却不会。进一步调查使我意识到 req.user 在后一种情况下是 undefined

问题可能在于全屏应用程序模式未正确保留用户的浏览器会话。因此,什么是最好的 fix/workaround?

如有任何建议,我们将不胜感激!

已解决!

我没有直接摆弄会话,而是选择在网络应用程序视图中简单地重新进行身份验证。为此,我需要一种在视图本身而不是 Safari 中打开链接的方法; this gist派上了用场。

会话现在在 closing/reopening 应用程序上持续存在,当应用程序页面从任务管理器中关闭并随后重新打开时也是如此。问题已解决!