Я разрабатываю приложение React Native с expo-cli. Я использую ADFS для аутентификации пользователей в приложении, и, в частности, я использую MSAL.js. У меня работает аутентификация в сети, но я не могу запустить приложение на iOS или Android. Я получаю сообщение об ошибке: «Указанное расположение кэша недопустимо. Предоставленное значение: localStorage. Возможные значения: localStorage, sessionStorage.»
Я пытался использовать sessionStorage вместо localStorage, но я просто получаюта же ошибка, за исключением того, что она сообщает, что предоставленное значение было sessionStorage.
Я нашел поток, где у кого-то также была похожая проблема, здесь: MSAL UserAgentApplication: локальное хранилище не работает . Я попробовал обходной путь, но затем я получаю сообщение об ошибке: «undefined не является конструктором (оценивая 'new Msal.Storage (" localStorage ")')".
Если я пытаюсь вызвать Msal.Storage ("localStorage"), он говорит мне, что msal.Storage не является функцией.
Я также попытался явно передать значения функции UserAgentApplication из моей конфигурации, а не передавать саму конфигурацию:
var myMSALObj = new Msal.UserAgentApplication(msalConfig.auth.clientId, msalConfig.auth.authority, msalConfig.auth.redirectURI, { cacheLocation: 'localStorage' });
Вот фрагмент кода, в котором, как мне кажется, проблема заключается в следующем:
const msalConfig = {
auth: {
clientId: "<client-Id>",
authority: "<authority>",
redirectURI: "http://localhost:19006"
},
cache: {
cacheLocation: "localStorage",
storeAuthStateInCookie: true
}
};
//new Msal.Storage("localStorage");
var myMSALObj = new Msal.UserAgentApplication(msalConfig);
Я ожидаю, что вызов UserAgentApplication правильно использует localStorage в качестве кэша на iOS и Android, но это не такпохоже дело в этом. Приложение отлично работает в моем браузере на моем ноутбуке, однако, без каких-либо сбоев кэша / localStorage. Есть ли обходные пути / исправления для этого, которые не требуют Msal.Storage? Любая помощь очень ценится!