AADSTS50011:请求中指定的回复 URL 与为应用程序配置的回复 URL 不匹配:

AADSTS50011: The reply URL specified in the request does not match the reply URLs configured for the application:

我正在使用 msal 来验证用户。

我的 userAgentApplication 看起来像这样:

var userAgentApplication = new UserAgentApplication({
  auth: {
    clientId: config.appId,
    authority: config.authority,
    validateAuthority: false,
  },
  cache: {
    cacheLocation: "localStorage",
    storeAuthStateInCookie: true,
  },
});

这是我的 config.js

modules.exports = {
    appId: "<my-App-id>",
    authority:
      "https://login.microsoftonline.com/<my-Tenant-id>/",
    scopes: ["user.read", "calendars.read"],
  };

我一直遇到这个错误,我不知道为什么会这样。

Request Id: 38b5b62e-0407-4520-8319-157b9c2e3e00
Correlation Id: 143c20c5-4cab-41be-aded-14daa783d022
Timestamp: 2020-04-06T07:21:35Z
Message: AADSTS50011: The reply URL specified in the request does not match the reply URLs configured for the application: 'xxxxxxxxxx'.

如果实例化UserAgentApplication时没有设置auth.redirectUrimsal会使用当前页面的url作为redirectUri为每个请求设置,用作 redirectUri 的页面必须全部在 Azure 门户中注册。您需要将 auth.redirectUri 设置为在 Azure 门户中注册的 url,或者将应用程序中的所有页面注册为可能的重定向 uris(可能不太可取)。

这是一个愚蠢的错误。就我而言,我允许 App Service 接受 http 和 https 请求。

是http请求,所以与回调不匹配URL。我基本上只是禁用了 Azure 门户中应用服务设置的 http 请求,以确保所有传入请求都是 https。