【问题标题】:Unable to clear access token after log out注销后无法清除访问令牌
【发布时间】:2019-08-03 18:38:08
【问题描述】:

注销后我无法清除访问令牌事件。我刚刚创建了清除整个用户对象并在单击注销按钮时重定向到登录页面的方法。

$scope.logout = function(){

    $scope.user ={};
    $state.go('static.login');
    $(".loader").fadeOut("slow");

}

在检查登录页面时,我仍然可以在应用程序选项卡中看到访问令牌。

上面是可以显示的图像,我可以在单击提交后调试时看到上次登录的用户对象详细信息,而无需输入任何凭据。如下所示。

$scope.setCookie = function(cname, cvalue, exMins) {
    var d = new Date();
    d.setTime(d.getTime() + (exMins*60*1000));
    var expires = "expires="+d.toUTCString();  
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

修改注销方式后。清除访问令牌。

$scope.logout = function(){

    /*
    $state.go('static.login');
    $(".loader").fadeOut("slow");*/
      //var token=$cookies.get('ACCESS_TOKEN');
      $cookies.remove('ACCESS_TOKEN');
      $scope.user={};
      $state.go('static.login');

}

【问题讨论】:

  • 是否缓存在客户端? /browser 通常会在本地缓存它,因此您可能想清除它或关闭窗口并打开以检查它是否仍然存在?
  • token clear的代码在哪里?
  • 但是,我正在使用 Empty Cache hard reload 清除我的缓存,但它仍然显示
  • 我应该编写单独的代码来清除访问令牌而不是清除整个用户对象吗?
  • 检查您的 cookie 到期时间

标签: java angularjs authentication access-token logout


【解决方案1】:

检查此example 以了解您的问题

样本

//remove token
$cookies.remove('token');

【讨论】:

  • 我能够清除访问令牌但是,我无法清除上次登录的用户对象。你可以看看我是怎么做的。
  • 是的,注销后我在调试中检查了用户对象,通过单击登录而不输入任何凭据然后对象也包含用户详细信息。
  • 登录期间,您将根据屏幕截图将数据存储在 $rootScope 中,因此请更改注销代码并写入 $rootScope.user = {}
猜你喜欢
  • 2014-04-28
  • 2018-06-04
  • 2012-05-16
  • 2012-10-15
  • 2018-05-21
  • 1970-01-01
  • 2016-08-06
  • 1970-01-01
  • 2019-05-20
相关资源
最近更新 更多