为了账号安全,请及时绑定邮箱和手机立即绑定

无法在 React Native App 中使用 localStorage 作为缓存位置

无法在 React Native App 中使用 localStorage 作为缓存位置

慕桂英4014372 2021-12-12 15:24:20
我正在使用 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 图以获取适当的用户数据。


查看完整回答
反对 回复 2021-12-12
  • 1 回答
  • 0 关注
  • 351 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信