Ионный фон не работает с MSAL InterceptorAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Ионный фон не работает с MSAL Interceptor

Сообщение Anonymous »

Я использую Ionic8 и Angular 16 и импортирую @azure/msal-angular в приложение.
Когда приложение открывается, я получаю действительный токен, и приложение работает нормально при включенном экране.
Но когда я выключаю экран в Android, http-вызовы перехватчика перестают работать, и причина, по-видимому, в следующем: потому что используется angular-common-http.
Мы создали специальный перехватчик, принудительно использующий конденсаторHttp, но методacquireTokenSilent по-прежнему использует angular-common-http внутри себя, поэтому Android по-прежнему заблокировать вызов
Есть ли способ заставить AcquireTokenSilent использовать конденсаторHttp вместо angular-common-http?
Или мы делаем что-то не так?
Спасибо!
Изменить:
Я сделал свою собственную реализацию networkClient, потому что это то, что msal-браузер использует для сетевых запросов.

Код: Выделить всё

import { INetworkModule, NetworkRequestOptions, NetworkResponse } from '@azure/msal-browser';
import { CapacitorHttp } from '@capacitor/core';

export class CustomHttpClient implements INetworkModule {

async sendGetRequestAsync(url: string, options?: NetworkRequestOptions, cancellationToken?: number): Promise {
try {

const response = await CapacitorHttp.get({ url, headers: options?.headers });

console.log('GET response:', response);

return {
body: response.data,
headers: response.headers,
status: response.status
} as NetworkResponse;
} catch (error) {
console.error('GET request error:', error);
throw error;
}
}

async sendPostRequestAsync(url: string, options?: NetworkRequestOptions): Promise {
try {
console.log('URL: ', url, options)
const response = await CapacitorHttp.post({
url,
headers: options?.headers,
data: options?.body,
});

console.log('POST response:', response);

return {
body: response.data,
headers: response.headers,
status: response.status
} as NetworkResponse;
} catch (error) {
console.error('POST request error:', error);
throw error;
}
}
}
Но он возвращает следующую ошибку: токены, выпущенные для типа клиента «Одностраничное приложение», могут быть погашены только через запросы между источниками.

Подробнее здесь: https://stackoverflow.com/questions/790 ... nterceptor
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»