Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法将localStorage用作React本机应用中的缓存位置_Javascript_React Native_Local Storage_Msal_Msal.js - Fatal编程技术网

Javascript 无法将localStorage用作React本机应用中的缓存位置

Javascript 无法将localStorage用作React本机应用中的缓存位置,javascript,react-native,local-storage,msal,msal.js,Javascript,React Native,Local Storage,Msal,Msal.js,我正在使用expo cli开发React本机应用程序。我正在使用ADFS对应用程序中的用户进行身份验证,尤其是使用MSAL.js。我已经在网络上进行了身份验证,但是,我无法让应用程序在iOS或Android上运行。我收到错误:“提供的缓存位置无效。提供的值:localStorage。可能的值为:localStorage,sessionStorage。” 我尝试过使用sessionStorage而不是localStorage,但是我得到了相同的错误,只是它告诉我提供的值是sessionStorag

我正在使用expo cli开发React本机应用程序。我正在使用ADFS对应用程序中的用户进行身份验证,尤其是使用MSAL.js。我已经在网络上进行了身份验证,但是,我无法让应用程序在iOS或Android上运行。我收到错误:“提供的缓存位置无效。提供的值:localStorage。可能的值为:localStorage,sessionStorage。”

我尝试过使用sessionStorage而不是localStorage,但是我得到了相同的错误,只是它告诉我提供的值是sessionStorage

我在这里发现了一个线程,其中有人也有类似的问题:。我尝试了解决方法,但随后出现错误:“undefined不是构造函数(评估'new Msal.Storage(“localStorage”))”

如果我尝试调用Msal.Storage(“localStorage”),它会告诉我Msal.Storage不是一个函数

我还尝试从配置中显式地将值传递给UserAgentApplication函数,而不是传递配置本身:

var myMSALObj=new Msal.UserAgentApplication(msalConfig.auth.clientId、msalConfig.auth.auth.authority、msalConfig.auth.redirectURI,{cacheLocation:'localStorage'});
以下是我认为问题所在的代码片段:

const msalConfig={
认证:{
客户ID:“,
权限:“,
重定向URI:“http://localhost:19006"
},
缓存:{
cacheLocation:“本地存储”,
storeAuthStateInCookie:是的
}
};
//新Msal.存储(“本地存储”);
var myMSALObj=新的Msal.UserAgentApplication(msalConfig);

我希望对UserAgentApplication的调用能够在iOS和Android上正确地使用localStorage作为缓存,但事实似乎并非如此。不过,该应用程序在我的笔记本电脑浏览器中运行得非常好,没有任何缓存/本地存储问题。是否有不需要Msal.Storage的解决方案/修复程序?非常感谢您的帮助

我只是写了自己的库来做这件事。我猜MSAL.js没有合适的调用来使用移动浏览器

下面的库正是我想要的,即登录Azure AD,检索令牌,然后使用该令牌查询MS graph以获取适当的用户数据