azure-active-directory - 如果使用 msal.js,在登录过程中会丢失“让我登录”消息
问题描述
语境
我正在开发一个浏览器应用程序,它使用 msal.js 库来允许 Azure Active Directory 帐户访问我们的网站。该应用程序已正确设置了 clientId 和范围,并且成功使用了 loginRedirect和acquireTokenSilent。
问题
我面临的问题是我无法保持会话打开,因为我没有看到 Keep Me Signed In 消息 (KMSI),所以我无法回答“是”并使AADSSO cookie 持久化。出于这个原因,在登录过程之后,如果浏览器关闭,我需要再次登录。
期待
如果我使用 msal.js 库从我的网站重定向到 Microsoft 登录,我希望看到 KMSI 消息以启用持久会话(出于某种原因,我可以看到是否直接转到 login.microsoftonline.com)
对不起西班牙语:它说你想保持会话打开吗?否/是
问题
如何使用 msal.js 启用 KMSI?
解决方案
使用 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
推荐阅读
- java - 如何在 WebSecurityConfigurerAdapter 中结合基本身份验证和 Oauth2?
- python - 我可以帮助找出在此构建错误中更改 python setuptools 版本的位置吗?
- swift - Swift 脉冲动画非圆
- php - 如何使用 \d* 和 \w* 将 unicode 字符重复为数字和字符
- swiftui - SwiftUI 运行时仅在 IOS15 中使用带有 uiviewrepresentable 的 collectionview 的组合布局时崩溃
- c# - 序列化列表
当类型无法序列化但具有 Serialize 方法时 - google-cloud-platform - 从 Google Cloud Storage 读取日期分区数据到 Data Fusion
- linux - 当二进制或 bash 以错误代码退出时,Systemd“OnFailure =”未启动
- sql - 多次使用选择查询的结果到另一个中
- r - 使用分组从长格式的其他访问值中减去 V1 和 V0