当前位置: 首页 > 知识库问答 >
问题:

如何在清除本地存储的同时清除缓存

龚国源
2023-03-14

我已在登录时在本地存储中设置了身份验证令牌,并在注销时将其清除。注销后,如果用户尝试再次登录,则从缓存中获取旧的身份验证令牌,而不是新设置的值。如何在清除本地存储时清除缓存。我在应用程序中使用angular 2。

登录:

localstorage.setItem("token", "value")

注销:

localstorage.clear();

共有2个答案

蒋斯伯
2023-03-14

你怎么这么有信心注销呢
如果用户只需关闭浏览器怎么办?

我建议除了安全令牌
之外保存一个时间戳,并为凭据提供类似的超时时间。

localStorage['token_time'] = ''+myDate.getTime();
// And to restore it :
var myDate = new Date(parseInt(localStorage['token_time'], 10));
熊烨
2023-03-14

在进行本地存储之前。clear();,您必须删除该元素;为此,您的代码应该如下所示:localStorage。removeItem(“令牌”);本地存储。清除();

请注意,如果您使用的是BehaviorSubject,还必须将其设置为null;假设如下:

private loggedInUserSubject: BehaviorSubject<User>;
public loggedInUser: Observable<User>;

在构造函数中,要获取用户的值:

this.loggedInUserSubject= new BehaviorSubject<User>(JSON.parse(localStorage.getItem('loggedInUser')));
this.loggedInUser= this.loggedInUserSubject.asObservable();

然后注销:

    localStorage.removeItem('currentUser');
    this.currentUserSubject.next(null);
    localstorage.clear();

希望能有帮助:D

 类似资料:
  • 我使用Drupal 7最新的开发版本。 我已经安装了清漆和过期模块并设置它们。它们工作得很好,但是我有一个关于从清漆中删除缓存的问题。 问题是如何只删除索引(主页)页面的清漆缓存,而不删除其他页面的缓存。我看了清漆日志,发现每次Drupal执行命令时,整个清漆缓存都被删除了 此命令由varnish模块或expire模块执行,它表示删除主页(索引)页的缓存。但正如我看到的,它正在删除varnish中

  • 问题内容: 我使用nginx作为前端服务器,我修改了CSS文件,但是nginx仍在使用旧文件。 我试图重新启动nginx,但没有成功,我已经用Google搜索,但是找不到清除它的有效方法。 一些文章说我们只能删除缓存目录:,但是我的服务器上没有这样的目录。 我现在该怎么办? 问题答案: 我遇到了完全相同的问题-我在Virtualbox中运行了Nginx。我没有打开缓存。但是看起来像已经设置好了,这

  • void clear_cache(string template [, string cache id [, string compile id [, int expire time]]]) This clears the cache for a specific template. If you have multiple caches for this template, you can cl

  • 问题内容: 我在项目中经常使用AlamofireImage,并且使用 从我的CDN获取图像。我已经做了一些测试,但是如果我错了,请纠正我,这似乎会将下载的图像存储到缓存中。我的测试包括下载5mb的图片。第一次大约花了20秒,第二次是瞬间。 我想知道的是如何清除特定URL /图像的缓存并重新下载图像? 例如,我更新了用户个人资料照片。图像名称/ URL会完全相同,但是我知道图像会随着用户从库或相机中

  • 我正在尝试使用Android Studio,第一次启动它,需要45分钟来编译...如果我不退出应用程序,那也没关系--每次后续编译/运行应用程序大约需要45秒。 我试着检查了我的一些缓存:在我的主目录中有一个文件夹,它包含123 MB。 我的项目文件夹中还有文件夹...其中一个大小为200 MB。我不敢随便用核弹攻击他们两个。删除文件夹的哪些部分是安全的? 有没有更好的解释为什么我的Android

  • 问题内容: 通过WSDL缓存所在的位置(),但我不一定知道删除以WSDL开头的所有文件是否安全。 是的,我 应该 能够从中删除所有内容,但是我不知道如果删除所有WSDL文件,这还会影响什么。 问题答案: 您可以安全地删除WSDL缓存文件。如果希望防止以后进行缓存,请使用: 或动态地: