【问题标题】:JWT API token storageJWT API 令牌存储
【发布时间】:2018-12-07 06:41:00
【问题描述】:

我正在编写应用程序的 API 部分,并且正在使用 JWT 进行身份验证。我现在只是生成一个令牌,并在创建用户时将令牌发送回 json 对象以供前端处理。但这是正确的吗?我不应该将令牌放入后端的标题中吗?因为当我想注销用户时,我想访问标头中的令牌并从后端删除它......

感谢任何回复

【问题讨论】:

  • 请记住,即使您“注销”用户,如果他手动复制了 JWT,他仍然可以继续会话。这就是为什么 JWT 不如会话令牌那么好。
  • 我知道,我需要创建一个黑名单数据库,这样令牌就不能再次使用了
  • 您不需要数据库,您只需在令牌上设置一个生命周期以使其过期,并在您的 JSON 对象响应中将过期时间以毫秒为单位并以创建时间为单位,以便轻松计算在前端。当它过期时,你请求一个新的令牌..
  • 好的,但要明确一点。我只应该从后端发送令牌而不是把它放在标题或类似的东西中?这是在前端完成的吗?那么这是否意味着在注销时从标头中清除令牌也是在前端完成的?
  • 在哪里完成并不重要,如果您愿意,可以将其放入 cookie 中。使用黑名单完全违背了 JWT 的目的,你应该只是在 cookie 中使用 sessionID。

标签: javascript node.js express jwt sequelize.js


【解决方案1】:

您可以使用 cookie 来存储 JWT, 当 JWT 令牌存储在 cookie 中时,浏览器会自动将其与每个请求一起发送到同一个域。

如果你使用的是 nodejs,最好的方式来存储 JWT 令牌 cookie 会话

cookie-session的优点:cookie-session变量在重启服务器或修改代码时不会被删除

【讨论】:

    猜你喜欢
    • 2019-02-01
    • 2019-05-06
    • 1970-01-01
    • 2021-12-27
    • 2020-07-24
    • 2016-03-15
    • 2020-03-23
    • 2015-09-15
    • 2017-10-08
    相关资源
    最近更新 更多