当用户在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:从请求中获取用户名和密码

用户未定义:Nodejs/Express + Passport

使用 nodejs/express 登录后将用户重定向到 Angular 应用程序

NodeJS、Express 和多事的 Socket.io

phonegap ajax 用户身份验证与 nodejs-express-mongodb-passport js