Microsoft 身份验证库 SPA 与 Web 应用

Microsoft Authentication Library SPA versus a Web App

TLDR:这是跨多个网页、SPA 或 Web 应用程序检查登录状态的正确方法。

我想为我工作的公司开发一个内部员工网站。我们目前配置和开发了一个 SPA 并正常工作,但随着我们添加更多功能,我认为我们将需要不止一个页面。

如果我错了请纠正我,但这是我目前对 MSAL.js SPA 的理解。假设最终用户试图访问我们位于 [company].com/home 的员工页面,如果该用户尚未使用存储在我们 Azure AD 中的帐户进行身份验证,则最终用户只能为此进行身份验证页面及其会话状态可以存储在本地存储中,因此当他们访问 [company].com/home 时,可以静默获取他们的登录信息,最终用户无需再次登录。如果他们没有帐户,他们将无法访问任何页面。

此外,根据这种逻辑,如果最终用户访问 [company]。com/staffresources,除了 [company] 的缓存登录信息之外,他们还必须登录此页面。 com/home,整个网站的每个页面都将遵循相同的规则。至少,我的理解是这样吧?

我确实看到有一个 Web 应用程序选项,这是否可以解决最终用户必须对他们尝试连接的每个单独页面进行身份验证的问题?或者有没有办法使用 SPA 检查登录状态,如果用户尚未通过身份验证,则可以将他们重定向到 [company].com/login.

任何指向解决方案正确文档的直接链接也将不胜感激。

localstorage 按域分段,而不是按每个单独的页面分段。如果用户在 [company] 上使用 msal.js 登录。com/login 他们将在 [company].com 域下的每个页面上登录。