当用户在nodeJS / Express和Angular中空闲一段时间(基于令牌的授权)时,我如何使我的JWT令牌失效?

时间:2015-06-08 19:20:01

标签: angularjs node.js express redis jwt

当我在服务器端使用正确的凭据登录时,我正在为用户生成JWT令牌。之前,我正在将令牌存储在数据库中,并且每次请求我都会从数据库中获取令牌,导致不良做法(如果我没错。)在客户端(在我的控制器中),我可以在$ rootscope中存储该令牌,以便我可以发送每个请求的令牌。我无法找到我应该在哪里存储我的JWT令牌来访问在服务器端为每个请求??

  1. 有人建议我使用Redis来存储JWT令牌。
  2. 如果我使用Redis,我可以为我的令牌设置maxAge,当用户空闲一段时间后会删除令牌吗?
  3. 任何人都可以向我提供我的程序建议吗?如果错误,建议我采取正确的方法!

    注意:我是NodeJS / Express和AngularjS的新手

2 个答案:

答案 0 :(得分:2)

JWT有exp声明。将其设置为您希望令牌有效的时间,并在令牌过期时检查路由。 如果有,发送401.否则让路由处理请求。

答案 1 :(得分:0)

最简单的方法:

在为已登录用户发出新令牌时,将“validDate”字段添加到令牌有效内容,然后在处理请求时检查此字段。如果日期已过期,则返回401错误