MSAL js Версия: v0.2.4;
Chrome Версия: 79.0.3945.88 (Официальная сборка) (64-разрядная версия)
Из различных постов Это Понятно, что из-за скопления файлов cookie мы видим «400 неверных запросов - заголовок запроса слишком длинный», но это происходит не во всех моих средах разработки. Я хотел бы знать, почему это происходит не с локальными средами (запущенными из кода VS), а в развернутых средах (Azure Служба приложений)
Я могу обновить пакет MSAL до последней версии версия, но в то же время раньше она работала нормально в развернутых средах, но не сейчас, почему?
Есть ли какое-либо соединение с сообщением об ошибке области (AADB2C90055) с «Bad Request - Request» слишком длинный заголовок '?
AADB2C90055: область действия' openid profile 'должна указывать ресурс
Любая информация будет полезна для меня или другие, и заранее спасибо
Вот код, используемый в моем приложении,
let userAgentApplication: Msal.UserAgentApplication;
const createAuthorityUrl = (tenantId: string, policy: string) => {
return `https://${tenantId}.b2clogin.com/tfp/${tenantId}.onmicrosoft.com/${policy}`;
};
export const b2cLogin = (config: B2CConfig) => {
const msalAppConfig = {
cacheLocation: 'localStorage',
redirectUri: `${location.protocol}//${location.host}`,
navigateToLoginRequestUrl: false,
storeAuthStateInCookie: true,
validateAuthority: false,
};
const { clientId, tenantId, myb2cSigninPolicy, myb2cPasswordResetPolicy } = config;
return new Promise(resolve => {
let handlingPasswordReset = false;
const app = new Msal.UserAgentApplication(
clientId,
createAuthorityUrl(tenantId, myb2cSigninPolicy),
(errorDesc: string, token: string) => {
if (errorDesc && errorDesc.indexOf('AADB2C90118') > -1) {
// user forgot password
// https://github.com/Azure-Samples/active-directory-b2c-javascript-msal-singlepageapp/issues/9#issuecomment-347556074
handlingPasswordReset = true;
new Msal.UserAgentApplication(
clientId,
createAuthorityUrl(tenantId, myb2cPasswordResetPolicy),
() => null,
msalAppConfig,
).loginRedirect();
}
return resolve(token);
},
msalAppConfig,
);
if (!handlingPasswordReset) {
userAgentApplication = app;
}
// Seems that MSAL's acquireTokenSilent() won't resolve if run within an iframe
if (window.parent !== window) {
return resolve('');
}
if (!userAgentApplication.isCallback(location.hash)) resolve(getAccessToken());
});
};
export const getAccessToken = async (): Promise<string> => {
if (!userAgentApplication) {
throw new Error('getAccessToken attempted before authentication initialized');
}
try {
return await userAgentApplication.acquireTokenSilent(['openid']);
} catch (error) {
console.log(error);
return '';
}
};