我正在使用 expo-cli 开发一个 React Native 应用程序。我正在使用 ADFS 对应用程序中的用户进行身份验证,特别是我使用的是 MSAL.js。我已经在网络上进行了身份验证,但是,我无法让应用程序在 iOS 或 Android 上运行。我收到错误消息:“提供的缓存位置无效。提供的值:localStorage。可能的值为:localStorage、sessionStorage。”我试过使用 sessionStorage 而不是 localStorage,但我得到了同样的错误,除了它告诉我提供的值是 sessionStorage。我发现了一个线程,其中有人也遇到了类似的问题,在这里:MSAL UserAgentApplication: Local storage not working。我尝试了解决方法,但随后出现错误:“未定义不是构造函数(正在评估 '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 的调用能够在 iOS 和 Android 上正确使用 localStorage 作为缓存,但情况似乎并非如此。不过,该应用程序在我笔记本电脑上的浏览器中运行良好,没有任何缓存/localStorage 问题。是否有任何不需要 Msal.Storage 的解决方法/修复程序?任何帮助深表感谢!
1 回答
神不在的星期二
TA贡献1963条经验 获得超6个赞
我只是写了我自己的库来做到这一点。我猜 MSAL.js 没有正确的调用来使用移动浏览器。
https://yarnpkg.com/en/package/azure-ad-graph-expo
下面的库正是我想要的,即登录 Azure AD,检索令牌,然后使用该令牌查询 MS 图以获取适当的用户数据。
添加回答
举报
0/150
提交
取消