JsonWebToken用户身份验证问题
JsonWebToken User Authentication Issue
我有一个用于用户身份验证的应用程序,我遇到了这个问题,因为我有登录的用户,并且在cookie中存储了JWT(JsonWebToken)。我在验证用户后存储了cookie。接下来,我作为管理员,在用户仍然登录时将其从数据库中删除。由于用户仍然登录,因此用户在浏览器中有一个有效的JWT,因此它仍然认为它存在,因为我验证用户是否登录的方式是通过webtoken。我一直在考虑如何解决这个问题,但我还没能想出任何办法。
我也在GitHub上发布了这个问题。
查看使JSON Web令牌无效
有几种技术可以在JWT令牌到期前使其失效,当用户情况发生变化,并且您无法从本地存储删除/cookie:帐户被删除/阻止/暂停,密码被更改,权限被更改,用户被管理员注销:
-
令牌黑名单:存储注销和注销之间的令牌;过期时间,标记过期并在每个请求中检查它。您需要服务器存储。您可以只包含ID或使用已发布的时间字段。在用户上次更新之前发布的令牌将是无效的
-
缩短到期时间并轮换。每隔几次请求就发布一个新的。问题是在没有请求时(例如关闭浏览器)保持用户记录
其他常见技术:
- 如果帐户被新用户泄露,允许更改用户唯一ID&密码登录
- 包括上次登录日期以删除旧令牌
- 若要在用户更改密码时使令牌无效,请使用其密码的哈希对令牌进行签名。如果密码更改,任何以前的令牌都将自动验证失败。将此机制扩展到其他感兴趣的字段进行签名。缺点是它需要访问数据库
一种方法是通过将cookie的过期时间戳设置为已过的日期来使其过期。
相关文章:
- Sencha Touch和远程服务器上的身份验证
- Javascript清除缓存以清除基本身份验证凭据
- REST的面向公众的身份验证机制
- 当需要身份验证时,ui路由器不会重定向
- CRM身份验证问题
- 获取json结果的身份验证问题
- 在Internet Explorer 11中使用SoundCloud进行身份验证时出现问题
- jQuery,CORS,JSON(不带填充)和身份验证问题
- Facebook标签/页面身份验证问题:getLoginStatus总是返回not_authorized
- 使用 JavaScript 问题使用 LinkedIn API 进行身份验证
- Chrome 的 HTTP BASIC 身份验证注销问题
- MongoError: 身份验证失败.- 连接到MongoLab时出现问题
- 使用基于Java EE表单的身份验证时出现Javascript问题
- 此HTTP Get-Basic身份验证代码有什么问题
- P4身份验证问题
- 身份验证问题
- Firebase匿名身份验证问题
- 使用Everyauth的github身份验证的承诺问题
- Google使用OAuth2身份验证从JavaScript客户端接触API问题
- JsonWebToken用户身份验证问题