首页 > 解决方案 > 保存 MSAL 缓存,即使在重新加载浏览器时也是如此?

问题描述

我对 MSAL 比较陌生,遇到了一个让我非常沮丧的问题。我正在制作的程序是浏览器中的单页应用程序,我遇到的问题是,当您关闭页面并返回时,所有登录信息都会被擦除。

这很可能是它存储在 SessionStorage 中,所以我尝试在配置中执行此操作以将其更改为 LocalStorage(应该保留):

cache: {
    CacheLocation: 'localStorage'
  },

它没有改变任何事情。我尝试编辑一些 MSAL 代码以使其存储在 localStorage 中,它确实将其保存在 localStorage 中,只是因为它有同样的问题。我还尝试使用以下方法将其保存到 cookie 中:

cache: {
    storeAuthStateInCookie:true
  },

但它把好东西保存在 LocalStorage 中(那个不起作用),并将我需要的信息放入 cookie 中,如下所示: 没用的东西

虽然,当离开它并重新进入时,饼干被擦掉了。走了!这到底是怎么回事,我只希望我的用户登录并保持登录状态。

有任何想法吗?

标签: msal.js

解决方案


在您的缓存配置中,您应该设置“cacheLocation”而不是“CacheLocation”。MSAL 配置属性区分大小写,因此您应该具有以下内容:

cache: {
   cacheLocation: "localStorage"
}

但是,如果凭据被清除localStorage,您应该尝试不同的浏览器,以确保这与您的浏览器被配置为在关闭窗口时清除其存储无关。


推荐阅读