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-адреса я мог получить правильный ответ