在Django中拥有全局可访问的JWT令牌的安全方法

时间:2018-02-01 15:32:22

标签: python django jwt

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

设置:

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

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

  3. 24小时后,第四个客户提出请求。 Django发现令牌无效并请求新令牌。

  4. 这里的问题:

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

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

    3. 必须安全存储令牌。

    4. 到目前为止的想法:

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

      2. 在此https://github.com/waveaccounting/dj-inmemorystorage中实现某种内存存储。这看起来有点矫枉过正。

      3. 有关更好方法的建议吗?

1 个答案:

答案 0 :(得分:0)

django cache是要走的路。请参阅上面的链接以获取示例。