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

即使在令牌到期或注销后,浏览器上也未清除JWT令牌

丁翰海
2023-03-14

我们有一个带有Angular 2的Spring启动应用程序,对于身份验证,我们使用JWT。我遇到了一个问题——即使令牌已经过期,然后注销并再次登录,过期的JWT令牌仍然在请求标头上可用。因此后端仍然验证旧的JWT令牌,而不是新令牌。我需要清除浏览器缓存使其工作。

我看到令牌存储在Sessionstore中,下面的操作也是为了在logout()上清除令牌

logout() {
    if (this.principal.isAuthenticated()) {
        sessionStorage.removeItem('authenticationtoken');
        this.authServerProvider.logout().subscribe();            
    }
    this.principal.authenticate(null);
}

但这也不是清除旧令牌。我可以做些什么来从浏览器中清除令牌?

共有1个答案

万俟靖
2023-03-14

在深入研究代码之后,我发现头被定义为“const”。当我将它们改为“let”时,所有的头都开始正常工作。

 类似资料:
  • 我正在学习Spring Boot 2.0和React的全栈开发。身份验证和授权由JWT管理,除了我必须在刷新浏览器后重新登录之外,应用程序按预期工作。如何在浏览器刷新后维护JWT令牌?

  • 问题内容: 我在hapijs中使用jwt插件和策略。 我可以在登录用户时创建jwt令牌,并通过’jwt’策略使用同一令牌对其他API进行身份验证。 我将令牌设置为cookie,其中是令牌名称。另外,我没有将这些令牌保存在数据库中。 但是,注销时如何销毁jwt令牌? 请提出一种方法。 问题答案: JWT存储在浏览器中,因此删除令牌以删除客户端的cookie 如果您还需要在令牌到期之前从服务器端使令牌

  • 嗨,我正在创建使用 REST API endpoint与服务器端通信的移动本机应用程序。 我以前有开发本机客户端的经验,但我将简单的令牌(随机生成的字符串)存储在存储用户信息的同一表中的数据库中。所以它就像浏览器中使用的会话,但每个请求的标头中都有令牌,而不是 cookie。 最近我发现了JWT令牌。这似乎是保护私有endpoint的好方法。您可以从移动客户端请求令牌,前提是您通过登录并获得生成的

  • 对于身份验证,目前我们使用JWT,因此一旦创建了令牌,它就会在整个生命周期内创建,如果我们设置了时间过期,令牌将过期。 有没有办法使令牌过期? 单击注销按钮时,我需要销毁令牌。 我正在使用ASP. NET Core WebAPI。

  • 当用户单击注销按钮时,如何使JWT令牌无效?我做了一些研究,但没有找到任何好的实现。

  • 我在springboot中用jwt令牌开发了一个oauth2服务器,我在注销时遇到了困难http://www.baeldung.com/spring-security-oauth-revoke-tokens 注销后,如果在头中提供令牌并点击/user,则它将提供所有用户信息,而应该抛出并错误地表示用户已注销