当用户在nodeJS / Express和Angular中空闲一段时间(基于令牌的授权)时,我如何使我的JWT令牌过期
Posted
技术标签:
【中文标题】当用户在nodeJS / Express和Angular中空闲一段时间(基于令牌的授权)时,我如何使我的JWT令牌过期【英文标题】:How can i expire my JWT token, when user is idle for sometime(Token based authorization) in nodeJS/Express and Angular 【发布时间】:2015-08-23 09:42:09 【问题描述】:当用户在服务器端使用正确的凭据登录时,我正在为用户生成 JWT 令牌。以前,我将令牌存储在数据库中,并且对于每个请求,我都从数据库获取令牌,这会导致不良做法(如果我没有错)。在客户端(在我的控制器中),我可以将该令牌存储在 $rootscope 中,以便我可以随每个请求发送该令牌。我无法找到我应该在哪里存储我的 JWT 令牌以访问每个请求都在服务器端??
-
有人建议我使用 Redis 来存储 JWT 令牌。
如果我使用 Redis,我可以为我的令牌设置 maxAge 以在用户空闲一定时间时删除令牌吗??
谁能给我的程序建议?如果有错误,建议我用正确的方法!
注意:我是 NodeJS/Express 和 AngularjS 的新手
【问题讨论】:
【参考方案1】:JWT 有一个 exp
声明。将其设置为您希望令牌有效的时间,如果令牌已过期,请检查路由。
如果有,发送 401。否则让路由处理请求。
【讨论】:
【参考方案2】:最简单的方法:
当您为登录用户发出新令牌时,将“validDate”字段添加到令牌有效负载,然后在处理请求时检查此字段。如果日期已过期,则返回 401 错误
【讨论】:
以上是关于当用户在nodeJS / Express和Angular中空闲一段时间(基于令牌的授权)时,我如何使我的JWT令牌过期的主要内容,如果未能解决你的问题,请参考以下文章
当同时使用 GraphQL 时,Nodejs 和 Express 在 MERN 堆栈 Web 应用程序中的作用是啥?
用户未定义:Nodejs/Express + Passport