azure-active-directory - MSAL.js - 隐式身份验证 - 回复 url 参数问题
问题描述
我将 MSAL.js 用于基于 javascript 的单页应用程序。我们已为隐式身份验证配置 Azure Ad。重定向 url 也已配置到页面。
但是,我们有一个要求,我们可以在其中获得每日电子邮件报告。此电子邮件包含指向应用程序页面的链接,但带有允许过滤当天报告的查询参数。
现在,如果我们通过登录页面访问该应用程序,我们就可以正常登录。但是对于查询参数,它给出了异常“请求中指定的回复 URL 与回复 URL 不匹配..”。
我在 Azure AD 上使用端点 V2,因此无法将 * 放入回复 url。我想这是一个存在的问题。但是有什么方法可以克服登录和使用参数重定向的问题吗?
谢谢,阿什
解决方案
我们对应用程序通常采用的方法是将 MSAL 的特定 URL 指定为重定向 URL,然后从那里重定向到“本地 URL”。因此,当您发送用户进行身份验证时,您会将当前路径存储在本地/会话存储中。然后,当用户点击该回调页面时,您可以从存储中加载路径并将用户重定向到那里。通过这种方式,您可以避免使用通配符,并且仍然可以将用户带到他们想去的地方。
您可以告诉 MSAL 不要重定向到当前 URL,并像这样指定重定向 URL:
const app = new UserAgentApplication({
auth: {
// Other settings left out for brevity
navigateToLoginRequestUrl: false,
redirectUri: window.location.origin + '/auth-callback'
}
});
推荐阅读
- ios - 从 iOS 中的 UIWebView 中删除粗体、斜体和下划线选项
- linux - Fedora 28 / GLIBC 2.27 libm.so.6 logf() 和 powf() c++
- c# - C# 将 Selenium 与 Chrome 便携版和 driver.Navigate().GoToUrl 一起使用
- excel - 将某些单元格从更改数量的工作表复制到新行
- javascript - Discord 如何在所有平台上运行?
- twitter - Discord Bot:仅发布包含关键字的推文
- java - 检查输入字符串是否包含标点符号字符串中的任何标点符号的有效方法
- c++ - 类 C++ 中数组元素的 Getter 和 Setter
- android - 为什么我的标签在 Xamarin 表单中的框架内不可见?
- vaadin - 如何通过环境变量或配置文件在 JxBrowser 中禁用 GPU 加速?