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 应用程序上持续存在,当应用程序页面从任务管理器中关闭并随后重新打开时也是如此。问题已解决!
我构建了一个 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 应用程序上持续存在,当应用程序页面从任务管理器中关闭并随后重新打开时也是如此。问题已解决!