【问题标题】:Is manualy updating JWT access_token data considered a bad practice?手动更新 JWT access_token 数据是否被认为是一种不好的做法?
【发布时间】:2022-01-20 18:34:39
【问题描述】:

在我的应用程序中,我大量使用存储在令牌中的自定义数据——几乎在每个端点中。现在我想在用户登录后添加一些数据(这非常重要)。我想知道用新令牌替换旧令牌是否是一种不好的做法?

假设用户登录并收到此令牌:

{
...
"sub": {
    "someParam": false
},
...
}

但经过一些操作后,我想将someParam 更改为true

{
...
"sub": {
    "someParam": true
},
...
}

【问题讨论】:

  • 用户仍然可以使用旧令牌,因为旧令牌仍然有效。那会是个问题吗?你为什么首先想要这个?
  • 我将在 redis 中撤销旧令牌 - 用户将无法再次使用它。在用户登录后会发生一个操作,它会影响每个端点 - 在 JWT 令牌中包含此信息将减少我需要添加到代码库中的更改

标签: python security flask jwt


【解决方案1】:

您似乎正在尝试将 JWT 用作会话存储机制,这不是一个好习惯。如果您需要在每个请求上检查数据库中 JWT 的有效性,为什么不只使用会话并保留相关的数据服务器端?

另外,您打算如何向用户提供这样一个更新的令牌?我认为您将数据保存在后端并仅使用会话会容易得多。

【讨论】:

    猜你喜欢
    • 2015-10-29
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-28
    • 2022-12-22
    • 2011-02-27
    相关资源
    最近更新 更多