AngularacquireTokenPopup — msal перенаправляет на локальный хост
Мне нужно получить токен O365 и отправить его обратно в API (.NET) для хранения в БД. после успешного входа в систему или запроса согласия - оно перенаправляет всплывающее окно на локальный хост (это то, что я настроил в Azure как redirectURL). тогда всплывающее окно останется там. Если я закрою это всплывающее окно, я получу ошибку: user_cancelled: Пользователь отменил поток.
Вот что я пробовал: Вариант 1: App.module
MsalModule.forRoot(new PublicClientApplication({
auth:{
clientId:"my-client-id",
authority:"https://login.microsoftonline.com/$my-tenant-id",
redirectUri:'http://localhost',
navigateToLoginRequestUrl:false //also tried set to true
},
cache: {
cacheLocation: BrowserCacheLocation.LocalStorage //nothing gets in as request incomplete
}
}),
{
interactionType: InteractionType.Popup, // MSAL Guard Configuration
},
null),
внутренний компонент:
constructor(
@Inject(MAT_DIALOG_DATA) public data: DialogOauthEditData,
private eventManager: EventManagerService,
private adminApi: AdminApiService,
private authService: MsalService
) { }
async signIn() {
const request: PopupRequest = {
scopes : ["email",
"offline_access",
"https://outlook.office.com/SMTP.Send"],
prompt:'login', // also tried 'consent'
}
try {
return await this.authService.acquireTokenPopup(request).subscribe(response => {console.log(response); this.authResult = response});
} catch (error) {
console.log(error);
}
Я получаю сообщение об ошибке от Microsoft: «AADSTS700016: Приложение с идентификатором «НЕИЗВЕСТНО» не найдено в каталоге».
Вариант 2: вместо вызова msalService
let fakeService = new PublicClientApplication({
auth:{
clientId:"my-client-id",
authority:"https://login.microsoftonline.com/$my-tenant-id",
redirectUri:'http://localhost',
navigateToLoginRequestUrl:false //also tried set to true
}
});
и затем то же самое:
return await fakeService.acquireTokenPopup(request).then(response => {console.log(response); this.authResult = response});
} catch (error) {
console.log(error);
}
это приводит к перенаправлению всплывающих окон на локальный хост и остается там. закрыть всплывающее окно -> ошибка: user_cancelled: пользователь отменил поток.
также пробовал LoginPopup, loginrRedirect и т. д. - он всегда перенаправляется на localhost, не закрывает всплывающее окно и просто остается там, не возвращая токен.
различные параметры конфигурации MSAL, всплывающее окно должно закрыться — токен сохраняется в var