ClientConfigurationError Поток Microsoft OAuth

Я реализую поток кода Microsoft Auth , но я застрял с этой ошибкой.

Основываясь на этом примере кода , вот как я инициализирую клиент:

      const config = {
  auth: {
    clientId: process.env.MICROSOFT_CLIENT_ID,
    authority: process.env.MICROSOFT_AUTHORITY,
    clientSecret: process.env.MICROSOFT_CLIENT_SECRET,
  },
};
const cca = new msal.ConfidentialClientApplication(config);

А позже я хочу создать URL-адрес аутентификации, чтобы перенаправить пользователя на:

      const authCodeUrlParameters = {
    scopes: ["user.read"],
    redirectUri: "http://localhost:8080/oauth/microsoft",
    state: 'state_here',
  };

  cca
    .getAuthCodeUrl(authCodeUrlParameters)
    .then((authCodeUrl) => {
      return authCodeUrl;
    })
    .catch((error) => console.log(JSON.stringify(error)));

Но я получаю эту ошибку:{"errorCode":"empty_url_error","errorMessage":"URL was empty or null.","subError":"","name":"ClientConfigurationError"}

Основываясь на документах об ошибках , похоже, что это thrown before requests are made when the given user config parameters are malformed or missing.

Кто-нибудь может определить, где конфиги искажены?

1 ответ

Ошибка связана с отсутствием требований к конфигурации в приложении. И самое главное, проверьте URL-адрес запроса авторизации на наличие отсутствующих параметров, таких как состояние и одноразовый номер, а также URL-адрес перенаправления.

Здесь для URL-адреса запроса могут потребоваться параметры состояния и одноразового номера из кэша как часть authCodeUrlParameters для построения URL-адреса.

В authCodeUrlParameters посмотрите, какие из них пропущены, так как они могут привести к нулевому URL-адресу.

Вы пытаетесь указать свой домен в knownAuthority

Бывший:

       auth: {
        clientId: 'xxxx-xx-xx-xx-xxxxx',
        authority: '<give authority>', 
        knownAuthorities: ['<domain here>']
        redirectUri: 'https://localhost:8080'
    },
cache: {
    cacheLocation: "sessionStorage",
    storeAuthStateInCookie: false,
    secureCookies: false
},

Пожалуйста, убедитесь, что URL-адрес перенаправления имеет правильный формат:

См. раздел Ограничения URI перенаправления (URL-адрес ответа) — Microsoft Entra | Майкрософт учиться

После установки правильного URL-адреса я мог получить правильный ответ

Другие вопросы по тегам