【问题标题】:Safe way to have globally accessible JWT token in Django在 Django 中拥有全局可访问的 JWT 令牌的安全方法
【发布时间】:2018-07-11 23:50:48
【问题描述】:

关于如何从 Django 向客户端颁发 JWT 令牌的方法很多,但我正在寻找一种方法来存储颁发给 的 JWT 令牌用于针对外部 API 进行身份验证的 Django 应用程序。

设置:

  1. Django 从外部 API 请求和接收令牌。 24小时有效。

  2. 每次客户端 a 发出请求时,应用程序都必须对外部 API 进行经过身份验证的调用。理想情况下,如果 3 个客户端分别发出 2 个请求,我们应该只需要请求一个 JWT。

  3. 24 小时后,第四个客户端发出请求。 Django 看到令牌无效并请求一个新的。

这里的问题:

  1. 来自多个客户端的请求不应各自需要自己的令牌。

  2. 令牌必须能够更改(这排除了将其粘贴在设置中)

  3. 令牌必须安全存储。

目前的想法:

  1. 在数据库中添加一个列出到期时间的字段。从安全的角度来看,这似乎是有问题的。

  2. 像 https://github.com/waveaccounting/dj-inmemorystorage 这样实现某种内存存储。这似乎有点矫枉过正。

有什么更好的方法来做到这一点的建议吗?

【问题讨论】:

  • 嗯,看起来 Django 缓存可能会像 github.com/auth0/auth0-python/issues/56 那样解决这个问题。我没有意识到 Django 带有它自己的捆绑的低级缓存。如果这是一个有效的解决方案,我会将其标记为已解决。

标签: python django jwt


【解决方案1】:

django cache 是要走的路。有关示例,请参见上面的链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-16
    • 2015-05-06
    • 2018-01-02
    • 2018-11-12
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 2014-10-30
    相关资源
    最近更新 更多