首页 > 解决方案 > 如果使用 msal.js,在登录过程中会丢失“让我登录”消息

问题描述

语境

我正在开发一个浏览器应用程序,它使用 msal.js 库来允许 Azure Active Directory 帐户访问我们的网站。该应用程序已正确设置了 clientId 和范围,并且成功使用了 loginRedirectacquireTokenSilent

问题

我面临的问题是我无法保持会话打开,因为我没有看到 Keep Me Signed In 消息 (KMSI),所以我无法回答“是”并使AADSSO cookie 持久化。出于这个原因,在登录过程之后,如果浏览器关闭,我需要再次登录。

期待

如果我使用 msal.js 库从我的网站重定向到 Microsoft 登录,我希望看到 KMSI 消息以启用持久会话(出于某种原因,我可以看到是否直接转到 login.microsoftonline.com)

在此处输入图像描述

对不起西班牙语:它说你想保持会话打开吗?否/是

问题

如何使用 msal.js 启用 KMSI?

标签: azure-active-directorymsalmsal.js

解决方案


使用 msal.js 时看不到“让我登录”登录消息的原因是,当库构建 URL 以执行登录时,它包含一个名为 x-client-Ver 的查询字符串项,它会更改 microsoftonline.com 登录流动。如果您从 URL 中删除该项目(例如 &x-client-Ver=1.1.3),您会看到“保持登录状态”消息。

解决方案是手动修补库以删除此问题,直到 Microsoft 修复它。像这样:https ://github.com/AzureAD/microsoft-authentication-library-for-js/pull/982/commits


推荐阅读