【问题标题】:angular 4 localstorage cached角度4本地存储缓存
【发布时间】:2017-10-23 01:56:18
【问题描述】:

我用

localStorage.setItem('currentUser')

保存我当前的用户数据,例如令牌等

当用户注销时,我使用localStorage.removeItem('currentUser') 删除我的用户数据,但是当我在注销后立即以其他用户身份登录时,我的 localStorage 仍然保留最后一个用户而不是当前用户

下面是我设置 localStorage 的代码

return this.http.post(environment.api_host + '/login', params.toString(), options)
      .map((response: Response) => {

const user = response.json().returnBody;
    if (user && user.token) {
      localStorage.setItem('currentUser', JSON.stringify(user));
    }
  });

这是注销

localStorage.removeItem('currentUser');

更新

下面是我检查当前用户令牌状态的代码(我把它放在我的 NotificationService 上,在所有页面中都调用它)

if (error.json().error === 'token_expired') {
      swal('Session expired', 'Please login again !', 'error').then(() => {
        this._authService.logout();
        window.location.reload();
      });
    }

我也使用来自RoutescanActivate

canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
    if (localStorage.getItem('currentUser')) {
        // logged in so return true
        return true;
    }

    // not logged in so redirect to login page with the return url
    this.router.navigate(['/login'], { queryParams: { returnUrl: state.url }});
    return false;
}

但是当我尝试禁用浏览器缓存或刷新浏览器缓存时,它发生了变化

有没有办法处理这个,所以我不需要刷新我的浏览器缓存?

谢谢

【问题讨论】:

  • 你应该使用 sessionStorage
  • @Sajeetharan 嗨,sessionStorage 是如何工作的?它是否也在浏览器缓存中存储数据?
  • @Sandy,您能否提供一个您最初设置这些值的代码示例?
  • @HuseinRoncevic 嗨,我已经添加了设置代码并删除了

标签: angular local-storage browser-cache angular-local-storage


【解决方案1】:

你在用铬吗?如果是这样,他们只是针对导致您的问题的错误进行了修复:https://bugs.chromium.org/p/chromium/issues/detail?id=765524

所以我们的 chrome 版本遇到了问题,为了解决这个问题,我们必须这样做

localStorage.setItem('currentUser', '');
localStorage.removeItem('currentUser');

如果我们这样做了,它就成功了。如果我们不这样做并且只使用removeItem 它会清除,但在刷新时它会回来。

【讨论】:

  • 嗨 Nix,我使用 chrome 进行开发,但仍未在其他浏览器上尝试。根据您分享的链接,chrome v 61 是被窃听的那个,这是否意味着 v 60(或更低版本)没有被窃听?
  • 将他们带到登录页面的逻辑在哪里?
  • 嗨 Nix,我已经添加了重定向过程
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-20
  • 2017-08-26
  • 2019-04-29
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多