如果使用 msal.js,则在登录期间丢失“让我登录”消息
Keep Me Signed In message missing during login if using msal.js
上下文
我正在开发一个浏览器应用程序,它使用 msal.js 库来允许 Azure Active Directory 帐户访问我们的网站。该应用程序正确设置了 clientId 和范围,它使用 loginRedirect 和 acquireTokenSilent 成功。
问题
我面临的问题是我无法保持会话打开,因为我没有看到保持登录消息 (KMSI),所以我无法回答 'YES' 并进行AADSSO cookie 持久化。因此,在登录过程后,如果浏览器关闭,我需要重新登录。
预期
如果我使用 msal.js 库从我的网站重定向到 Microsoft 登录,我希望看到 KMSI 消息以启用持久会话(出于某种原因我可以看到我是否直接转到 login.microsoftonline.com)
对不起西班牙语:它说你想保持会话打开吗?否/是
问题
如何使用 msal.js 启用 KMSI?
使用 msal.js 时看不到 'Keep me signed in' 登录消息的原因是,当库构建 URL 来执行登录时,它包含一个名为 x- 的查询字符串项更改 microsoftonline.com 登录流程的客户端版本。
如果您从 URL 中删除该项目(例如 &x-client-Ver=1.1.3),您可以看到 'Keep me signed in' 消息。
解决方案是手动修补库以删除它,直到 Microsoft 修复它。像那样:https://github.com/AzureAD/microsoft-authentication-library-for-js/pull/982/commits
上下文
我正在开发一个浏览器应用程序,它使用 msal.js 库来允许 Azure Active Directory 帐户访问我们的网站。该应用程序正确设置了 clientId 和范围,它使用 loginRedirect 和 acquireTokenSilent 成功。
问题
我面临的问题是我无法保持会话打开,因为我没有看到保持登录消息 (KMSI),所以我无法回答 'YES' 并进行AADSSO cookie 持久化。因此,在登录过程后,如果浏览器关闭,我需要重新登录。
预期
如果我使用 msal.js 库从我的网站重定向到 Microsoft 登录,我希望看到 KMSI 消息以启用持久会话(出于某种原因我可以看到我是否直接转到 login.microsoftonline.com)
对不起西班牙语:它说你想保持会话打开吗?否/是
问题
如何使用 msal.js 启用 KMSI?
使用 msal.js 时看不到 'Keep me signed in' 登录消息的原因是,当库构建 URL 来执行登录时,它包含一个名为 x- 的查询字符串项更改 microsoftonline.com 登录流程的客户端版本。 如果您从 URL 中删除该项目(例如 &x-client-Ver=1.1.3),您可以看到 'Keep me signed in' 消息。
解决方案是手动修补库以删除它,直到 Microsoft 修复它。像那样:https://github.com/AzureAD/microsoft-authentication-library-for-js/pull/982/commits