首页 > 解决方案 > MSAL.js - 隐式身份验证 - 回复 url 参数问题

问题描述

我将 MSAL.js 用于基于 javascript 的单页应用程序。我们已为隐式身份验证配置 Azure Ad。重定向 url 也已配置到页面。

但是,我们有一个要求,我们可以在其中获得每日电子邮件报告。此电子邮件包含指向应用程序页面的链接,但带有允许过滤当天报告的查询参数。

现在,如果我们通过登录页面访问该应用程序,我们就可以正常登录。但是对于查询参数,它给出了异常“请求中指定的回复 URL 与回复 URL 不匹配..”。

我在 Azure AD 上使用端点 V2,因此无法将 * 放入回复 url。我想这是一个存在的问题。但是有什么方法可以克服登录和使用参数重定向的问题吗?

谢谢,阿什

标签: azure-active-directorymsal.js

解决方案


我们对应用程序通常采用的方法是将 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'
  }
});

推荐阅读