【发布时间】:2018-07-11 23:50:48
【问题描述】:
关于如何从 Django 向客户端颁发 JWT 令牌的方法很多,但我正在寻找一种方法来存储颁发给 的 JWT 令牌用于针对外部 API 进行身份验证的 Django 应用程序。
设置:
Django 从外部 API 请求和接收令牌。 24小时有效。
每次客户端 a 发出请求时,应用程序都必须对外部 API 进行经过身份验证的调用。理想情况下,如果 3 个客户端分别发出 2 个请求,我们应该只需要请求一个 JWT。
24 小时后,第四个客户端发出请求。 Django 看到令牌无效并请求一个新的。
这里的问题:
来自多个客户端的请求不应各自需要自己的令牌。
令牌必须能够更改(这排除了将其粘贴在设置中)
令牌必须安全存储。
目前的想法:
在数据库中添加一个列出到期时间的字段。从安全的角度来看,这似乎是有问题的。
像 https://github.com/waveaccounting/dj-inmemorystorage 这样实现某种内存存储。这似乎有点矫枉过正。
有什么更好的方法来做到这一点的建议吗?
【问题讨论】:
-
嗯,看起来 Django 缓存可能会像 github.com/auth0/auth0-python/issues/56 那样解决这个问题。我没有意识到 Django 带有它自己的捆绑的低级缓存。如果这是一个有效的解决方案,我会将其标记为已解决。